Algorithm

    [Java/프로그래머스] K번째 수

    문제 풀이 (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/프로그래머스] 예산

    문제 풀이 (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/프로그래머스] 약수의 합

    문제 풀이 (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/프로그래머스] 약수의 개수와 덧셈

    문제 풀이 (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주차 알고리즘 테스트

    ✍ Today I Learned 알고리즘 테스트 오늘은 대망의 알고리즘 테스트 날이다. 주어진 시간은 4시간, 문제는 총 3문제. 모의고사 때와는 다르게 2문제를 제출해야 하고, 이 중 하나만 맞아도 과락은 면할 수 있다. 저번 모의고사와 마찬가지로 주어진 시간 내에 3문제를 다 푸는 것이 목표! ..였지만 3번 문제는 시험장을 나와 조원들과 함께 풀이를 하였다...😅 다음은 오늘 알고리즘 테스트의 모든 문제와 내가 제출한 코드이다. 첫 번째 문제 문제를 분석해보자 간단하게 0의 개수로 도개걸윷모를 나눌 수 있다. → 모(0개), 도(1개), 개(2개), 걸(3개), 윷(4개) index에 맞게 배열을 생성하고, 반복문으로 0의 개수를 카운팅 해서 배열에 index로 접근한다. 코드로 구현해보자 pack..

    [TIL] 2주차 알고리즘 조각 모음

    ✍ Today I Learned Java 스터디 3일 차 우리 조의 기존 스터디 룰은 월~금: 개인 공부 / 토: 각자 맡은 챕터 발표였으나 함께 하는 시간을 더 의미 있게 보내고자 다른 방식을 제안해보았다. 정해진 양을 다 같이 미리 공부해오고, 이해가 어려웠던 부분이나 궁금한 내용을 공유하는 방식으로! 다행히 조원분들도 의견에 동의해주셔서 앞으로는 이런 방식으로 스터디가 진행될 것 같다. 오늘은 각자 공부해온 06-1 객체지향 프로그래밍 부분을 공유하였다. 확실히 함께 이야기 나누다 보면 내가 어떤 부분을 모르는지 깨닫게 되는 것 같다. 다음은 오늘 스터디 시간에 나누었던 내용이다. 객체가 생성되면 어디에 저장되는가? new 연산자로 메모리 힙 영역에 객체를 생성하고, 이후 객체 번지를 리턴한다. 클..

    [TIL] 2주차 알고리즘 모의고사

    ✍ Today I Learned 알고리즘 모의고사 목요일 본 테스트를 앞두고, 오늘 알고리즘 모의고사를 치렀다. 주어진 시간은 2시간, 문제는 총 3문제. 모의고사는 이 중 1 문제만 풀면 된다. 조금 특별한 점은 풀이를 진행한 소스코드와 내 코드를 설명한 녹화본의 유튜브 링크를 제출해야 한다는 것이다. 시험 자체는 그다지 긴장되지 않았지만, 제출방법이 좀 복잡해서 혹시라도 차질이 생길까 걱정되었다. 다행히 어제 화면 녹화 연습도 한 번 해봤기 때문에(ㅋㅋㅋㅋ) 별 무리 없이 시험을 마칠 수 있었다. 내 목표는 주어진 2시간 안에 3문제를 모두 풀어내는 것이었는데, 아쉽게도 첫 번째 문제는 시간 안에 풀지 못했다. 시험장을 나와서 조원들과 함께 코드 리뷰를 하며 풀지 못했던 첫 번째 문제까지 올 클리어!..

    [Java/프로그래머스] 숫자의 표현

    문제 풀이 (1) 문제 분석하기 이전에 풀었던 문제와 유사하여 같은 방식으로 풀이 2022.10.03 - [📊 Algorithm] - [Java/백준] 연속된 자연수의 합 구하기 #2018 시작 인덱스와 종료 인덱스를 투포인터로 지정하여 접근 투포인터 이동 원칙 연속된 자연수의 합이 입력 받은 값보다 작으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌 연속된 자연수의 합이 입력 받은 값과 같으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌, count 올려줌 연속된 자연수의 합이 입력 받은 값보다 크면 -> startIndex를 올려주고, sum에서 startIndex를 빼줌 (2) 슈도코드 작성하기 사용 변수 초기화(sum, count, startInd..