Algorithm 124

[프로그래머스] 괄호 변환 - Java

문제 설명 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 접근 방법 파라미터로 입력받은 괄호 문자열을 문제에서 주어진 방식대로 변환시켜주면 됩니다. 우선 첫 번째 조건에 따르면 입력(String p)이 빈 문자열인 경우, 단순히 빈 문자열을 반환하기만 하면됩니다. if (p.isEmpty()) return p; 그렇지 않을 경우 해당 문자열(반드시 균형잡힌 괄호 문자열)을 두 개의 문자열로 분리하는데 이 중 하나는 더 이상 분리될 수 없는 균형잡힌 괄호 문자열, 나머지 하나는 이외 나머지의 문자열로 빈 문자열..

[프로그래머스] 프린터 - Java

문제 설명 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 접근 방법 우선 주어지는 문서들의 중요도가 중복될 수 있으므로 각각의 문서별 ID를 만들어 이를 Map으로 관리하도록 했습니다. Map documentsById = new HashMap(); for (int i = 0; i < priorities.length; i++) { documentsById.put(i, priorities[i]); } 이후 문서별 ID들을 Queue에 순서대로 넣은 후 각 문서별 ID를 나머지 문서별 ID들과 비교하여 자기 자신 보..

[프로그래머스] 빛의 경로 사이클 - Java

문제 설명 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr 접근 방법 우선 각각의 빛의 경로 사이클을 구분하는 방법은 특정 노드 위치(행 : row, 열 : col)에서의 특정 방향(동, 서, 남, 북)을 통해 구분하는 방법이 있습니다. 예를 들어 A 사이클과 B 사이클이 있다고 했을 때 A 사이클의 모든 노드에서의 방향이 B 사이클의 각각의 모든 노드에서의 방향은 중복되는 것이 하나도 없습니다. (A[i][j][k] != B[i][j][k]) 만일 하나라도 같다면 A 사이클과 B..

[백준 - 1238] 파티 - Java

문제 설명 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 풀이 회고 문제에 따르면 각각의 1~N 마을에 사는 N명의 학생은 X(1 이상 ~ N 이하) 마을에 도착 후 본래 자기 마을로 돌아올 때 전체 걸리는 시간이 최단 시간으로 돌아오고자 합니다. 이때 문제에서 주어진 예시(테스트 케이스)에 대한 마을들 사이에 있는 M개의 단방향 도로들을 정리해보면 다음과 같습니다. 이때 각각의 학생들이 다시 자기 마을로 돌아오는데 걸리는 최소 시간을 정리해보면 다음과 같습니다. 마을 1에 사..

Algorithm/BOJ 2022.05.13

[백준 - 1018] 체스판 다시 칠하기 - Java

문제 설명 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 접근 방법 입력으로 주어진 M * N 크기의 보드로부터 8 * 8 크기 만큼 잘라 체스판을 구해야 하는데, 이때 구한 체스판은 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 만일 잘랐던 체스판이 위 조건을 충족하면 별도로 색칠할 필요 없지만, 그렇지 않다면 최소 횟수로 다시 색칠해야 한다. 처음 이 문제에 접근했던 방법으로는 M * N 크기의 보드로부터 8 * 8 크기 만큼 ..

Algorithm/BOJ 2022.05.12