Coding Test (134) 썸네일형 리스트형 [Java] 30 [10610번] https://www.acmicpc.net/problem/10610예제 입력130예제 출력130예제 입력2102예제 출력2210예제 입력32931예제 출력3-1예제 입력480875542예제 출력488755420문제 접근입력 ⇒ 최대 10^5개의 숫자로 구성된 값을 입력 받음출력 ⇒ 30의 배수 중 최댓값을 출력, 30의 배수가 아니라면 -1문제 해결30의 배수이기 위해서는 반드시 0이 한 개 필요각 자리 수의 합이 3의 배수가 아니라면 30의 배수가 될 수 없음가장 큰 값을 위해 내림차순으로 문자열을 재구성기존 풀이 [메모리 : 22112 KB / 시간 : 372 ms]public static void main(String[] args) throws Exception{ StringBuilder sb.. [Java] 너의 평점은 [25206번] https://www.acmicpc.net/problem/25206예제 입력1ObjectOrientedProgramming1 3.0 A+IntroductiontoComputerEngineering 3.0 A+ObjectOrientedProgramming2 3.0 A0CreativeComputerEngineeringDesign 3.0 A+AssemblyLanguage 3.0 A+InternetProgramming 3.0 B0ApplicationProgramminginJava 3.0 A0SystemProgramming 3.0 B0OperatingSystem 3.0 B0WirelessCommunicationsandNetworking 3.0 C+LogicCircuits 3.0 B0DataStructure 4.0.. [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.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 17 다음