본문 바로가기

반응형

ProgramSoliving

(197)
백준 : 1519 www.acmicpc.net/problem/1519 1519번: 부분 문자열 뽑기 게임 게임 판에 어떤 자연수 N이 쓰여 있을 때, 두 명의 플레이어가 턴을 번갈아가면서 이 게임을 하려고 한다. 매 턴이 돌아올때마다, 플레이어는 현재 게임 판에 쓰여 있는 수의 진 부분 문자열을 고 www.acmicpc.net 오랜만에 문제 풀어봄.. 탑 다운 메모이제이션으로 풀었고 현재 내턴에서 n - 연속된수 한 결과가 -1 이면 내가 이긴 수라서 그중에서 가장 작은 target 값 찾는다. 만약 모든 결과가 -1이 없으면 어느것을 빼든 내가 지는 턴이기때문에 -1반환 package naver; import java.util.Scanner; public class B1519 { public static void mai..
프로그래머스 : 여행경로 정답은 항상 있다. 그러면 str[] 중 str[1] 을 기준으로 정렬해서 0~n을 방문해서 가장먼저 다돌수 있는게 정답이다 ^^ package excirsize; import java.util.Arrays; import java.util.Comparator; public class 여행경로 { public static void main(String[] args) { String[][] tickets = {{"ICN", "SFO"}, {"ICN", "ATL"}, {"SFO", "ATL"}, {"ATL", "ICN"}, {"ATL","SFO"}}; for(String ans : solution(tickets)) { System.out.print(ans +" "); } } static public Strin..
프로그래머스 : 단어변환 package excirsize; import java.util.LinkedList; import java.util.Queue; public class 단어변환 { public int solution(String begin, String target, String[] words) { int answer = BFS(begin, target, words); return answer; } private int BFS(String begin, String target, String[] words) { int time = 0; Queue q = new LinkedList(); q.add(begin); boolean visit[] = new boolean[words.length]; while (!q.isEmpty(..
프로그래머스 : 네트워크 package excirsize; import java.util.LinkedList; import java.util.Queue; public class 네트워크 { boolean visit[]; public int solution(int n, int[][] computers) { int answer = 0; visit = new boolean[n]; Queue q = new LinkedList(); for (int i = 0; i < n; i++) { if (visit[i]) continue; answer++; q.add(i); visit[i] = true; while (!q.isEmpty()) { int cur = q.poll(); for (int j = 0; j < n; j++) { if (visit..
프로그래머스 : 타겟 넘버 알고리즘 안푼지.. 4개월... 취업할려면 다시해야한다.. 하루에 1문제식 화이팅! package excirsize; public class 타겟넘버 { public static void main(String[] args) { } static int answer; public int solution(int[] numbers, int target) { answer = 0; dfs(numbers, 0, 0,target); return answer; } static public void dfs(int[] numbers, int sequence, int sum, int target) { if (sequence == numbers.length) { if (sum == target) { answer++; } ret..
프로그래머스 : 방금그곡 https://programmers.co.kr/learn/courses/30/lessons/17683?language=java 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, �� programmers.co.kr 음 아주 재미있는??? 문제다 (KMP) 알고리즘을 알고잇으면 쉽게 접근 가능하다. 주의 할점은 C#은 하나의 문자로 처리한다는것이다. 지금 문자열은 처리하기 어려우니 C# -> c 로 치환해서 접근하면 KMP 알고리즘을 쉽게 사용 할 수 있다. import java.util.StringTokenizer; public ..
백준 : 3665 (위상정렬) https://www.acmicpc.net/problem/3665 3665번: 최종 순위 문제 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 �� www.acmicpc.net 깔끔한 풀이가 안떠올라서 생각나는 데로 풀었다. 만약 어떤 팀의 우승 순서가 이어진다면 노드로 이어보면 5
백준 : 5670 https://www.acmicpc.net/problem/5670 5670번: 휴대폰 자판 문제 휴대폰에서 길이가 P인 영단어를 입력하려면 버튼을 P번 눌러야 한다. 그러나 시스템프로그래밍 연구실에 근무하는 승혁연구원은 사전을 사용해 이 입력을 더 빨리 할 수 있는 자판 모듈을 www.acmicpc.net 재미있는 Trie 문제이다. 자식을 HashMap으로 나타내어 접근하기 쉽게 하였다. 문제에서 cnt를 +1 할지 cnt로 갈지 cnt를 1로 갈지를 잘설정하여 DFS에 넘겨주면된다. 1. rootTrie를 설정한다. 2. insert를 통해서 chlid들을 만든다. 이때 현재노드의 자식수를 만든다. 3. serach를 통하여 모든 root를 탐방한다. 이때 현재 keyPushCnt를 만들어서 dfs탐..

반응형