본문 바로가기

Programmers/Lv.16

[프로그래머스] Lv.1 바탕화면 정리 JAVA 풀이 문제 Lv.1 바탕화면 정리 (배열 탐색)  : 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판   컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 = wallpaper   빈칸은 = "."   파일이 있는 칸 = "#"   최소한의 이동거리를 갖는 한 번의 드래그로 모든 파일을 선택해서 한 번에 지우기   드래그는 "점 S에서 점 E로 드래그한다"    "드래그 한 거리" = |rdx - lux| + |rdy - luy|      예)   wallpaper = [".#...", "..#..", "...#."]   S(0, 1)에서 E(3, 4)로 드래그하면 세 개의 파일이 모두 선택   드래그 한 거리 = (3 - 0) + (4 - 1) = 6을 최솟값 1 ≤ wallpaper[i]의 길이 ≤ 50모든 원소의.. 2024. 6. 28.
[프로그래머스] Lv.1 공원 산책 JAVA 풀이 문제 Lv.1 공원 산책 (방향 탐색 시뮬레이션)  :  지나다니는 길 O 장애물 X    ["방향거리", "방향거리"..]     "E 5" = 현재 위치에서 동쪽으로 5칸 이동했다는 의미     공원의 가로 길이가 W, 세로 길이가 H     공원을 나타내는 문자열 배열 park    명령이 담긴 문자열 배열 routes 3 ≤ park[i]의 길이 ≤ 50S : 시작 지점 (1개) O : 이동 가능한 통로X : 장애물1 ≤ routes의 길이 ≤ 50수행할 명령어routes의 원소는 "op n"과 같은 구조 (op는 이동할 방향, n은 이동할 칸의 수)N : 북 이동 / S : 남 이동 / W : 서 이동 / E : 동 이동1 ≤ n ≤ 9  [과정] - 2차원 배열 헷갈리지 말자!! - arr[행.. 2024. 6. 28.
[프로그래머스] Lv.1 크레인 인형뽑기 JAVA 풀이 문제 Lv.1 크레인 인형뽑기 : 게임화면 = N × N 격자 아래부터 차곡차곡 쌓여있음 크레인 위치를 좌우로 옮겨 가장 위에 있는 인형 집어올려 바구니에 넣는다 바구니에 같은 모양의 인형이 두 개 만나면 터져서 없어진다 (바구니는 모든 인형이 다 들어갈 수 있는 여유로운 크기이다) [예시문제] : 격자 = 2차원 배열 board, 크레인 위치 = moves : board = [0,0,0,0,0] [0,0,1,0,3] [0,2,5,0,1] [4,2,4,4,2] [3,5,1,3,1] : moves = [1,5,3,5,1,2,1,4] : result = 4 : 바구니 = [4,3,1,1,3,2,4] [코드] import java.util.*; class Solution { public int solution.. 2023. 10. 2.
[프로그래머스] Lv.1 덧칠하기 JAVA 풀이 문제 Lv.1 덧칠하기 : 페인트가 비어있는 section 부분의 벽을 덧칠해야한다 롤러의 길이만큼 칠할 수 있고 페인트 덧칠을 최소한으로 측정해 덧칠 횟수를 출력 한다 : n은 벽 길이 m은 롤러 길이 section은 칠해야 할 벽 부분 (예시) n = 5, m = 4, section = {1, 3} 1 2 3 4 5 출력 : 1번째 덧칠 (1 ~ 4 까지 덧칠) 2번째 덧칠 (2 ~ 4 까지 덧칠) return 값 = 2 [코드] class Solution { public int solution(int n, int m, int[] section) { int result = 0; int start = 1; for (int i = 0; i < section.length; i++) { if (start 2023. 8. 24.
[프로그래머스] Lv.1 추억 점수 JAVA 풀이 문제 Lv.1 추억 점수 : 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수 매기기 : name은 그리워 하는 사람 이름 (문자열 배열) yearning은 그리움 점수 (정수 배열) photo는 사진에 찍힌 이름 (2차원 문자열 배열) (예시) name 그리운 사람 [ 수지, 짱구, 유리, 영희 ] yearning 점수 [ 5, 10, 1, 3 ] photo 사진에 찍힌 사람 # 1 [ 철수 - 짱구 - 맹구 - 훈이 ] # 2 [ 수지 - 짱구 - 유리 - 영희 ] # 3 [ 영희 - 짱구 - 맹구 - 훈이 ] 최종 결과 그리움 점수 [ 10, 19, 13 ] arr [ A ] [ B ] - A = 행 - B = 열 - 표현식 = { 열 개수만큼 . . .} { 열 개수.. 2023. 8. 21.
[프로그래머스] Lv.1 달리기 경주 JAVA 풀이 문제 Lv.1 달리기 경주 : players는 현재 달리고 있는 순서대로 선수들의 이름 (문자열 배열) callings는 해설진이 부르는 추월한 선수 이름 (문자열 배열) : 어떤 선수가 자신의 바로 앞 선수를 추월할 때 해설진은 추월한 선수의 이름을 부른다 (한칸 추월 = 서로 순위만 변경) (예시) players [ 철수 - 짱구 - 유리 - 맹구 - 훈이 ] 순으로 달리고 있다 callings [ 맹구, 맹구, 짱구, 훈이 ] 라면 과정 1) 해설진이 맹구 언급 = [ 철수 - 짱구 - 맹구 - 유리 - 훈이 ] 순으로 변경 과정 2) 해설진이 맹구 언급 = [ 철수 - 맹구 - 짱구 - 유리 - 훈이 ] 순으로 변경 과정 3) 해설진이 짱구 언급 = [ 철수 - 짱구 - 맹구 - 유리 - 훈이 ].. 2023. 8. 21.