
https://programmers.co.kr/learn/courses/30/lessons/86052?language=java 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr 해설 보고 풀긴 풀었는데 어떤 경우를 순환이라고 하는 건지 완전히 이해가 안간다.. 일단 회전하는거랑 3중 배열 처리 하는거 연습한다는 생각으로 풀었는데 다시 풀어봐야겠다.. while문을 돌면서 시작 위치, 시작 방향으로 돌아오지 못해도 어쨌든 방문 했던 위치/방향으로 돌아오면 순환이라 보는 건지 순환 길이..

https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net ✔ 문제 조건 행 R 1초부터 2초까지 폭탄을 설치하기 때문에, 2초부터 모든 칸에 폭탄이 있다고 풀어야 한다. (이 부분을 이해 못해서 한참을 못풀었다;;) 1초가 지난 후 (3초부터) 3초 전에 설치된 폭탄이 모두 폭발한다. 폭발하면서 4방향으로 인접한 폭탄들을 폭발시킨다. 3, 4번을 반복한다. ✔ 접근 과정 char형의 2차원 배열을 int형으로 바꾸어 저장한다. 빈칸은 -1로, 초기에 설치된 폭탄은 0초에..
https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 예전에 dfs로 완전탐색 했을 때는 시간초과가 났던 문제인데 dp를 공부한 후 다시 푸니까 풀려서 기분이 좋다^^ ✔ 문제 조건 30개 이하의, N개의 추가 있으며, 각 추들의 무게는 500이하이다. 같은 무게의 추가 여러 개 있을 수 있다. 추의 무게를 담은 배열을 balls[N+1] 라고 한다면, N
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net ✔ 문제 조건 N명의 학생(정점), M개의 단방향 도로(간선)이 있다. 학생들은 모두 X번째 마을까지 최단거리로 갔다가 돌아와야 한다. X번째 마을까지 갔다가 돌아오는 시간이 가장 긴 학생의 소요 시간을 출력한다. ✔ 접근 과정 이 문제는 두가지 거리들을 구해야한다. 1) 각 지점에서 X지점까지의 최단거리 2) X지점에서 각 지점까지의 최단거리 단방향 그래프이기 때문..

https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr ✔ 문제 조건 모든 친구를 조건에 맞추어서 줄 세워야 한다. 조건들은 data[] 배열의 원소들이다. 하나의 조건 data[i]에서 data[i].charAt(0) 과 data[i].charAt(2)는 조건 당사자들이다. data[i].charAt(3) 은 {=, }으로 각각 같음, 미만, 초과를 의미한다. data[i].charAt(4)는 조건 당사자들 사이..

https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 그동안 제일 취약했던 DP문제들을 풀어볼 생각이다.. 이 문제에서는 맨 위층부터 시작해서 아래에 있는 수 중 하나를 택하며 아래층으로 내려올 때 1) 현재 수의 바로 밑에 있는 수 2) 대각선 오른쪽 아래에 있는 수 들 중에서만 택할 수 있다. 즉, arr[i][j]를 택할 수 있는 위치는 1) 바로 위의 수 2) 대각선 왼쪽 위에 있는 수들이다. 1), 2) 의 위치에서 더 큰 합을 가지는 경우를 택하여 arr[i][j]의 수를 더해주면 (i, j)번째의 최적의 합이..
https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 10초짜리 동영상을 0초부터 봤다는 것은 10초에 동영상 끝난 것이다. 따라서 0초부터 9초 까지만 시청자 누적 수를 더해주어야 한다. 누적 합이 정수 범위를 넘어갈 수 있어 long으로 선언해야 한다. 큐로 투포인터를 실행한다. 코드 참조 : https://yjyoon-dev.github...

https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr ✔ 문제 조건 n개의 지점 (1번~n번) 간선은 두 지점 사이의 거리 (택시요금),..