[Java/프로그래머스] K번째 수
·
📊 Algorithm&SQL
문제 풀이 (1) 문제 분석하기 정답 배열의 길이를 입력받은 commands의 길이로 설정 입력값이 2차원 배열로 주어지므로 반복문을 돌면서 연산 배열을 특정 인덱스로 자르기 위해 Arrays.copyOfRange 사용하여 원본 배열 복사 Array.copyOfRange(array, startIndex, lastIndex) int[] array = {1, 2, 3, 4, 5}; int[] result = Arrays.copyOfRange(array, 1, 4); // result : [2, 3, 4] // 마지막 인덱스 포함X (2) 슈도코드 작성하기 int형 정답 배열의 길이를 commands의 길이로 설정 for(commands의 길이만큼) { commands의 0, 1, 2번째 수를 변수에 담음 배..
[Java/프로그래머스] 예산
·
📊 Algorithm&SQL
문제 풀이 (1) 문제 분석하기 가장 적은 신청 금액부터 더하여 비교할 수 있도록 먼저 배열 오름차순 정렬 반복문을 돌면서 i번째 요소를 누적해서 더하고, budget과 조건문으로 비교 budget보다 작으면 count를 1 올려주고, 아니라면 반복문 멈춤 (2) 슈도코드 작성하기 누적해서 더한 값을 담을 sum 변수와 더해진 요소의 개수를 세어줄 count 변수 선언 for(d 배열의 길이만큼){ d의 i번째 요소를 sum에 더함 if(sum이 budget보다 작으면){ count를 1 올려줌 }else{ 반복문 멈춤 } } count 반환 (3) 코드 구현하기 package algorithm.test27; import java.util.Arrays; public class Solution { // 입..
[Java/프로그래머스] 약수의 합
·
📊 Algorithm&SQL
문제 풀이 (1) 문제 분석하기 반복문을 돌면서 n을 i로 나눴을 때 나머지가 0인 값을 정답 변수에 더함 이때 주어진 반복 횟수를 줄이기 위해 정수 n을 1/2로 나눈 값 만큼 반복문을 돌고, 나온 값에 n을 미리 더함 (2) 슈도코드 작성하기 정답을 담을 int형 변수 answer n으로 초기화 for(1부터 n/2포함까지){ if(n을 i로 나눴을 때 나머지가 0이면){ answer에 i를 더함 } } 정답 변수 answer 반환 (3) 코드 구현하기 package algorithm.test26; public class Solution { // for문을 돌면서 정수 n을 i로 나눠서 딱 떨어지는 값을 answer에 더함 // 반복문은 n/2 까지 public int solution(int n) {..
[Java/프로그래머스] 약수의 개수와 덧셈
·
📊 Algorithm&SQL
문제 풀이 (1) 문제 분석하기 약수의 개수를 count하는 메소드를 따로 분리 입력 받은 수만큼 반복문을 돌면서 메소드로 약수의 개수를 구한 뒤, 짝/홀수 판별하여 answer에 담아줌 이때 약수 개수가 홀수라면 음수로 저장되어야 하므로 * (-1) (2) 슈도코드 작성하기 정답을 담을 int형 answer 변수 선언 for(left부터 right만큼) { if(약수의 개수가 짝수라면) { 정답에 i를 담음 else(약수의 개수가 홀수라면) { 정답에 -i를 담음 } } // 약수의 개수를 구할 메소드 분리 정수 n을 매개변수로 받는 메소드 생성 개수를 세줄 int형 변수 count 1로 초기화 for(2부터 n포함까지) { if(n을 i로 나눴을 때 나머지가 0이면 count++ count를 반환 }..
[TIL] 2주차 알고리즘 테스트
·
📝 TIL
✍ Today I Learned 알고리즘 테스트 오늘은 대망의 알고리즘 테스트 날이다. 주어진 시간은 4시간, 문제는 총 3문제. 모의고사 때와는 다르게 2문제를 제출해야 하고, 이 중 하나만 맞아도 과락은 면할 수 있다. 저번 모의고사와 마찬가지로 주어진 시간 내에 3문제를 다 푸는 것이 목표! ..였지만 3번 문제는 시험장을 나와 조원들과 함께 풀이를 하였다...😅 다음은 오늘 알고리즘 테스트의 모든 문제와 내가 제출한 코드이다. 첫 번째 문제 문제를 분석해보자 간단하게 0의 개수로 도개걸윷모를 나눌 수 있다. → 모(0개), 도(1개), 개(2개), 걸(3개), 윷(4개) index에 맞게 배열을 생성하고, 반복문으로 0의 개수를 카운팅 해서 배열에 index로 접근한다. 코드로 구현해보자 pack..
[TIL] 2주차 알고리즘 조각 모음
·
📝 TIL
✍ Today I Learned Java 스터디 3일 차 우리 조의 기존 스터디 룰은 월~금: 개인 공부 / 토: 각자 맡은 챕터 발표였으나 함께 하는 시간을 더 의미 있게 보내고자 다른 방식을 제안해보았다. 정해진 양을 다 같이 미리 공부해오고, 이해가 어려웠던 부분이나 궁금한 내용을 공유하는 방식으로! 다행히 조원분들도 의견에 동의해주셔서 앞으로는 이런 방식으로 스터디가 진행될 것 같다. 오늘은 각자 공부해온 06-1 객체지향 프로그래밍 부분을 공유하였다. 확실히 함께 이야기 나누다 보면 내가 어떤 부분을 모르는지 깨닫게 되는 것 같다. 다음은 오늘 스터디 시간에 나누었던 내용이다. 객체가 생성되면 어디에 저장되는가? new 연산자로 메모리 힙 영역에 객체를 생성하고, 이후 객체 번지를 리턴한다. 클..
[TIL] 2주차 알고리즘 모의고사
·
📝 TIL
✍ Today I Learned 알고리즘 모의고사 목요일 본 테스트를 앞두고, 오늘 알고리즘 모의고사를 치렀다. 주어진 시간은 2시간, 문제는 총 3문제. 모의고사는 이 중 1 문제만 풀면 된다. 조금 특별한 점은 풀이를 진행한 소스코드와 내 코드를 설명한 녹화본의 유튜브 링크를 제출해야 한다는 것이다. 시험 자체는 그다지 긴장되지 않았지만, 제출방법이 좀 복잡해서 혹시라도 차질이 생길까 걱정되었다. 다행히 어제 화면 녹화 연습도 한 번 해봤기 때문에(ㅋㅋㅋㅋ) 별 무리 없이 시험을 마칠 수 있었다. 내 목표는 주어진 2시간 안에 3문제를 모두 풀어내는 것이었는데, 아쉽게도 첫 번째 문제는 시간 안에 풀지 못했다. 시험장을 나와서 조원들과 함께 코드 리뷰를 하며 풀지 못했던 첫 번째 문제까지 올 클리어!..
[Java/프로그래머스] 숫자의 표현
·
📊 Algorithm&SQL
문제 풀이 (1) 문제 분석하기 이전에 풀었던 문제와 유사하여 같은 방식으로 풀이 2022.10.03 - [📊 Algorithm] - [Java/백준] 연속된 자연수의 합 구하기 #2018 시작 인덱스와 종료 인덱스를 투포인터로 지정하여 접근 투포인터 이동 원칙 연속된 자연수의 합이 입력 받은 값보다 작으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌 연속된 자연수의 합이 입력 받은 값과 같으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌, count 올려줌 연속된 자연수의 합이 입력 받은 값보다 크면 -> startIndex를 올려주고, sum에서 startIndex를 빼줌 (2) 슈도코드 작성하기 사용 변수 초기화(sum, count, startInd..