본문 바로가기

java60

[프로그래머스] 택배 배달과 수거하기- Java 택배 배달과 수거하기(Lv2)https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 아이디어 문제인 것 같다.먼저, 끝에서 부터 시작하는 것을 가정했다. 그러면택배를 배달택배를 수거이렇게 2가지로 나누어진다.1번의 경우, 택배를 배달하고, 이후 수거를 하면 되므로 (수거 Cnt)에 cap을 더한다2번의 경우, 택배를 수거하면, 이전에 배달을 하면서 오면 됐으므로 (배달 Cnt)에 cap을 더한다. 그 다음으로 배달을 해야하는 경우엔, 배달Cnt를 확인하고 배달Cnt보다 deliverie.. 2025. 9. 2.
[프로그래머스] 광고 삽입- Java 광고 삽입(Lv3)https://school.programmers.co.kr/learn/courses/30/lessons/72414 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 누적합을 이용해 풀었다.먼저 string으로 주어진 시간들을 int로 변환했다. 이후 모든 logs에 대해 시작 시간에는 +1을 해주고, 끝나는 시간에는 -1을 해주었다.for(int i=0; i 다음으로 dp 배열을 생성해서 누적합을 계산하고, 광고 시간만큼을 먼저 계산해 초기값을 설정해줬다.// 누적합 dp 계산long[] dp = new long[suffix.length];int startTime = 0;dp.. 2025. 8. 31.
[프로그래머스] 양궁대회 - Java 양궁대회(Lv2)https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 dfs(유사 부분집합)를 이용해 모든 경우의 수를 계산했다.단, 몇개를 사용해서 이기던 점수는 한 번만 오르는 것에 유의해서 풀었다.먼저 dfs의 파라미터는idx : 현재 인덱스remain : 남은 화살int[] info : 어피치 정보int[] compare : 라이언 정보로 구성했다. 다음으로 dfs의 주요 로직은info[idx](해당 인덱스에서 어피치가 맞힌 화살 갯수) >= remain인 경우에는 라이언이 화.. 2025. 8. 31.
[프로그래머스] 숫자 블록 - Java 숫자 블록(Lv2)https://school.programmers.co.kr/learn/courses/30/lessons/12923 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 제한 사항1 ≤ begin ≤ end ≤ 1,000,000,000end - begin ≤ 5,000 풀이이번 문제는 자기 자신을 제외한 것중 가장 큰 약수를 구해서 해결했다.특히, 문제 조건 중, 1~10,000,000인 숫자 블록만 사용한다 했으므로, 이것을 처리하는 것이 포인트였다.약수를 구하는 것은 제곱근을 이용해서 풀었다.예를 들어, 36의 제곱근은 6이고, 1~6까지의 숫자를 이용해서 36과 나누어 떨어진다면 36/나누어 .. 2025. 8. 28.
[프로그래머스] 혼자서 하는 틱택토 - Java 혼자서 하는 틱택토(Lv2)https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 제한 사항board의 길이 = board[i]의 길이 = 3board의 원소는 모두 "O", "X", "."으로만 이루어져 있습니다.board[i][j]는 i + 1행 j + 1열에 해당하는 칸의 상태를 나타냅니다."."은 빈칸을, "O"와 "X"는 해당 문자로 칸이 표시되어 있다는 의미입니다. 풀이이번 문제는 조건을 잘 생각해서 풀었다.게임이 성립하지 않는 경우는,후공인 "X"가 "O"보다 많은 경우, "O"가 ".. 2025. 8. 27.
[프로그래머스] 비밀 코드 해독 - Java 비밀 코드 해독 (Lv2)https://school.programmers.co.kr/learn/courses/30/lessons/388352 코딩테스트 연습 - 비밀 코드 해독알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr 제한 사항10 ≤ n ≤ 301 ≤ (q의 길이 = m) ≤ 10q[i]의 길이 = 5q[i]는 i+1번째 시도에서 입력한 5개의 서로 다른 정수를 담고 있으며, 오름차순으로 정렬되어 있습니다.1 ≤ q[i][j] ≤ nans의 길이 = mans[i]는 i+1번째 시도에서 입력한 5개의 정수 중 비밀.. 2025. 7. 22.