목록전체 글 (67)
개발자-H 입니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btxOYs/btrbVoa3r3f/YRMkUFK9XN2ZGyo9n5f7nk/img.png)
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 단계별 풀어보기 - 백트렉킹 문제이다. https://www.acmicpc.net/step/34 시간초과가 엄청나게 나서 자바에서 최적화 관련으로 열심히 뒤져서 겨우 통과 했다. 최적화 단계 DFS 함수 콜 3 -> 2 으로 변경 System.out.printf -> System.out.print 변경 System.out.print -> StringBuilder 마지막 한번 출력으로 변경 통과 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bESBuc/btrbIHWbLzU/9Gzql7f4789t39Jkt1v0XK/img.png)
https://www.acmicpc.net/submit/1697/31937024 로그인 www.acmicpc.net 그래프 탐색 문제이나 BFS와 DFS가 섞인 문제이다. BFS로 최단 경로를 찾고 DFS로 최단 경로까지 이동을 찾는 문제이다. import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws Exception { int N = scanner.nextInt(); int K = scanner.nextInt(); boolean[] visited = new boolean[100000 + 1]; Ar..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbjdqn/btrbIcB6AFn/t376YLUVgcciSQrQigxki1/img.png)
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 그래프 탐색 문제이다. 가장 빨리 탈출하는 경로를 찾으면 되므로 BFS가 유리하다. 모든 경로를 찾을 필요가 없으므로 DFS는 적절하지 않다. package main.java.backjoon; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static final Scanner ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zScsN/btrbtoRj40q/rCGYd5SoWyhL93Z2XgOYd0/img.png)
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 그래프 문제이다 1번에서 출발하여 연결된 모든 노드를 순회만 하면 되기때문에 DFS, BFS 둘다 풀어도 될 것같다. 코드는 BFS로 풀었다. 1번을 제외한 감염된 컴퓨터를 출력하면 된다. import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgqlVN/btrbpPhIsDp/MgRGNfAZ0mPEndeNLkirEk/img.png)
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 그래프 탐색 문제이다. DFS로 시도하였으나 시간 초과 및 반례가 있어 BFS로 변경하여 풀었다. 입력 형태가 맵 + BFS 요구 여서 인접 노드를 어떻게 탐색해야 하나 궁금했다 move라는 배열로 이동 가능한 범주를 주어 인접 노드 탐색을 찾는 것으로 해결했다. import java.util.LinkedLi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cXKE7P/btrbwhqcz8p/5hhI2pYXmQmUxqmPjzT0j1/img.png)
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문자열 치환 문제 설마 이게 되겠어 하고 제출했더니 그냥 통과가 되었다. 테케가 빡빡해서 시간 초과 날줄 알았는데. replace 함수로 해결이 되었다. class Solution { public int solution(String s) { String answer = s.replace("one", "1") .replace("two", "2") .re..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kMuxL/btrbtyeMstD/k6eB8A0zRdZZFFNKPGMhNk/img.png)
https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 포켓몬 종류에 따른 최대 선택수를 구하는 문제이다. 포켓몬의 종류는 HashSet자료 구조를 이용하여 계산하였다. import java.util.HashSet; class Solution { public int solution(int[] nums) { int numOfChoices = nums.length / 2; HashSet pockets = new Has..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpv5Rs/btrbCtDnpR6/1wkoXCRFrVU6HItntKTKy0/img.png)
https://level.goorm.io/exam/43145/%EA%B8%B8%EC%B0%BE%EA%B8%B0-%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이 level.goorm.io 그래프 탐색 문제이다. 입력 형식이 다소 난해 했다. DFS로 완전 탐색하였다. 다이아몬드의 마지막 지점에서 경로를 출력했으며 전역변수로 갱신했다. 다른 사람 풀이 보면 DFS 함수에서 바로 경로 리턴하는 방식이 있었다. 코드가 깔끔한거 같기도...