Coding Test/Problem Number (75) 썸네일형 리스트형 [Java] 잃어버린 괄호 [1541번] https://www.acmicpc.net/problem/1541예제 입력155-50+40예제 출력1-35예제 입력210+20+30+40예제 출력2100예제 입력30문제 접근입력 ⇒ 피연산자와 연산자가 1줄에 모두 주어짐출력 ⇒ 괄호를 친다고 가정했을 때 가장 최솟값을 출력문제 해결괄호를 치려면 마이너스(-) 이후에 마이너스(-)가 다시 등장하기 전까지 그 범위 내의 플러스(+)들을 모두 더한 뒤 빼주는 것이 가장 최솟값을 만드는 방법split을 이용하여 -를 기준으로 모두 나누고, 나뉘어진 상태에서 +를 기준으로 다시 나눠서 모두 더하기첫 번째값을 제외한 모든 값 빼기기존 풀이 [메모리 : 14264 KB / 시간 : 112 ms]public static void main(String[] args) t.. [Java] 두라무리 휴지 [25178번] https://www.acmicpc.net/problem/25178예제 입력18durumariduramuri예제 출력1YES예제 입력28durumaridarmurui예제 출력2YES예제 입력38durumaridumurari예제 출력3NO예제 입력48durumaridarumari예제 출력4NO문제 접근조건해당 단어의 내에서 재 배열첫글자와 마지막 글자는 동일각 단어의 모음을 제거 시 문자열이 동일해야 함입력단어의 길이문자열1문자열2출력 ⇒ 조건 만족 시 YES, 불만족 시 NO문제 해결첫 번째와 마지막 글자가 동일한 지 확인하는 메서드모음의 개수를 카운팅 하여 모음의 개수가 같은지 확인하는 메서드 → 단어 내에서 재배열단어 내에서 재배열이기 때문에 원래 문자열에 a가 1개 있는데 비교할 문자열에 a가 2개.. [Java] 바이러스 [2606번] https://www.acmicpc.net/problem/2606예제 입력1761 22 31 55 25 64 7예제 출력14문제 접근입력첫째줄 = 컴퓨터의 수 (1 ~ 100)둘째줄 = 네트워크 상 연결된 컴퓨터 쌍의 수출력1번 컴퓨터가 웜 바이러스에 감염될 경우 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수 출력문제 해결컴퓨터의 수 = 노드, 네트워크 연결 = 간선무방향 그래프이고 BFS, DFS 어떤 것으로 풀어도 상관 없을 것으로 예상 됨DFS로 풀이 ⇒ Base Condition ⇒ 현재 노드가 방문 노드면 리턴기존 풀이 [메모리 : 14232 KB / 시간 : 132 ms]static List> list = new ArrayList();static boolean[] visited;s.. [Java] 특정 거리의 도시 찾기 [18352번] https://www.acmicpc.net/problem/18352예제 입력14 4 2 11 21 32 32 4예제 출력14예제 입력24 3 2 11 21 31 4예제 출력2-1예제 입력34 4 1 11 21 32 32 4예제 출력323문제 접근입력도시의 개수 N = Node (2 ~ 300,000)도로의 개수 M = Edge (1 ~ 1,000,000)거리 정보 K = 목표 도시 (1 ~ 300,000)출발 도시 번호 = X (1 ~ N)출력X에서 출발하여 최단 거리가 K인 도시 오름차순 출력최단 거리 K인 도시가 하나도 없으면 -1문제 해결거리가 최대 30만까지 주어질 수 있기 때문에 BFS로 1개씩 늘리면서 최단 거리를 확인해야할 것으로 예상노드의 수가 30만개나 되기 때문에 인접 행렬로 하게 되면.. [Java] 나이트의 이동 [7562번] https://www.acmicpc.net/problem/7562 예제 입력1380 07 01000 030 50101 11 1예제 출력15280문제 접근입력테스트 케이스각 테스트 케이스첫째줄 ⇒ 체스판 한 변의 길이 (4 ~ 300)둘째줄 ⇒ 현재 위치셋째줄 ⇒ 목표 위치출력최소 이동 수문제 해결나이트의 이동 가능 좌표 8칸을 선언최소 이동이기 때문에 BFS가 더 적합하다고 판단DFS를 할 경우 300 x 300 체스판이 주어지면, 모든 경우를 다 탐색해야하기 때문방문 여부 확인 배열 반드시 필요 → 없을 경우 무한 루프에 빠짐기존 풀이 [메모리 : 72132 KB / 시간 : 312 ms]// 체스판 크기, 목표 X 인덱스, 목표 Y 인덱스static int chessLength, targetX, ta.. [Java] 완전 이진 트리 [9934번] https://www.acmicpc.net/problem/9934예제 입력122 1 3예제 출력112 3예제 입력231 6 4 3 5 2 7예제 출력236 21 4 5 7문제 접근완전 이진 트리에서 중위 순회로 방문을 함중위 순회 = 왼쪽 서브 트리 → 중간(루트 노드) → 오른쪽 서브 트리완전 이진 트리의 사이즈는 최대 2^깊이-1문제 해결ArrayList의 배열을 트리의 깊이 만큼 생성입력값을 저장할 일차원 배열 생성(시작값 + 마지막값) / 2를 하면 중간의 값(루트 노드)를 구할 수 있음1 깊이부터 시작하여 루트 노드를 저장하면서 K깊이가 될 때가지 재귀 호출기존 풀이 [메모리 : 14344 KB / 시간 : 132 ms]static StringBuilder sb = new StringBuilde.. [Java] 30번 [13116번] https://www.acmicpc.net/problem/13116예제 입력1333 799 151022 1023예제 출력140105110문제 접근해당 문제는 완전 이진 트리이기 때문에 배열 없이 계산 가능1부터 순차적으로 증가하기 때문에 정점의 숫자에 따라 깊이를 찾을 수 있음두 개의 정점의 깊이를 맞춘 뒤 동일한 부모 노드가 나타날 때까지 반복출력 ⇒ 같은 부모 노드 * 10문제 해결두 정수 A와 B의 깊이를 각각 구함깊이가 다를 경우 더 큰 값을 작은 값에 맞췄을 때의 정점을 구함두 정점이 같지 않을 경우 1단계 위의 부모 정점 탐색(나누기 2)두 정점이 같아졌을 때 공통 조상 발견기존 풀이 [메모리 : KB / 시간 : ms]public static void main(String[] args) th.. [Java] 신입 사원 [1946번] https://www.acmicpc.net/problem/1946예제 입력1253 21 44 12 35 573 67 34 21 45 72 56 1예제 출력143문제 접근첫 째줄에 테스트 케이스의 개수가 주어짐테스트 케이스의 첫째 줄에는 지원자 수가 주어지고, 이후 지원자 수만큼 [서류 성적, 면접 성적] 두 개가 공백으로 주어짐현재의 지원자가 다른 지원자 단 한명이라도, 서류 성적 또는 면접 성적이 떨어질 경우 선발되지 않음출력 ⇒ 테스트 케이스마다 선발할 수 있는 신입 사원의 수문제 해결[서류 성적, 면접 성적]을 멤버 변수로 갖는 클래스를 선언지원자 수 만큼 클래스의 배열을 생성클래스 배열을 서류 성적 순으로 정렬 최소 면접 점수를 저장하는 변수를 선언하여, 현재 지원자의 면접 점수가 더 낮다면 최소.. 이전 1 2 3 4 5 6 ··· 10 다음