전체 글
-
[백준][자바][9205]맥주 마시면서 걸어가기코딩/알고리즘 2019. 10. 2. 17:21
맥주 마시면서 걸어가기 이 문제를 잘 생각해보면 거리가 20병이 최대고 그러면 이동할수 있는 거리가 최대 1000이라는 이야기가 된다 그에 따라 편의점에 갈수 있는지 없는지를 분기처리해서 q에 넣고 빼면 된다. package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; class MPoint{ int y; int x; MPoint(int y, int x) { this.y = y; this.x = x; } } public ..
-
[백준][자바][5017]스타트링크코딩/알고리즘 2019. 10. 1. 21:49
bfs로 풀었다 . bfs는 상태를 가지고 있다고 생각하면 쉽다 . 올라갔을때, 내려갔을때를 분기로 방문처리를 하면서 풀면 간단하다. package back; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class StartLink{ int y; int count; StartLink(int y, int count){ this.y = y; this.count = count; } } public class Main_backjoon_스타트링크 { static Queue q = new LinkedList(); static boolean VISITED[][] = new boolean[1000001][2]; static..
-
[백준][자바][14442]벽부수고 이동하기 2코딩/알고리즘 2019. 9. 11. 00:39
1과 똑같은 문제 1과 다른점은 1은 벽을 부수고 안부수고 상태값이 2개인데 이번에는 k번까지 부술 수 있다는 것이다 k가 1인경우는 한번 만 부신경우 k가 2인경우는 2번 부신경우 이런식으로 가정을 하면 문제가 쉬워진다 package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; class Wall2{ int x; int y; int wallBreak; Wall2(int y, int x, int wallBreak) { t..
-
[ 백준 ] [ 자바 ][ 1194] 달이 차오른다 가자코딩/알고리즘 2019. 9. 8. 23:35
이제 조금 3차원 방문배열을 이해 할랑 말랑 싶다 처음에 키값이 있는지 없는지 확인하려면 그냥 map이나 또는 링크드 리스트에 넣어서 루프돌려서 확인하면 되지 않을까? 라고 생각해서 풀었는데 각 키를 주웠을떄의 상황을 생각해보자면 3차원 배열을 만드는게 가장 효율적인것 같다 비트마스킹은 의외로 간단하다 이진수를 생각하자면 1과 0으로 나누어져있는데 key 값 abcdef 를 각각 전구 처럼 생각하면 쉽다 a를 방문했을떄 a 전구를 키고 b를 방문했을떄 b전구를 키는 식으로 생각하는 것이다. 모든 키값은 interger 하나로 가능해진다 즉 비트마스킹을 이용하면 3차원 배열로 해결이 가능해진다. 열쇠 문제랑 유사한데 ..운이 좋아서 풀린거였다. 예전에는 이해가 아예 되지도 않았는데 이제 살짝 마음으로는 이..
-
프로그래머스 타켓넘버 java코딩/알고리즘 2019. 9. 2. 21:59
알고리즘은 정말 안하면 손쉽게 녹쓰는것같다 그래도 아직 하는법은 안까먹은거같은데... dfs로 풀이했다 손으로 일일히 그려가면서 풀면 이해가 쉽다 class Solution { static int ANSWER = 0 ; public int solution(int[] numbers, int target) { dfs(numbers,target,0,0); return ANSWER; } public void dfs(int[] numbers, int target, int depth, int sum ){ if(depth == numbers.length) { //System.out.println(sum); if(target == sum ) { ANSWER += 1; } return; } dfs(numbers, tar..
-
[ 백준 ][ 자바 ][ 14502 ] 연구소코딩 2019. 6. 23. 13:47
하 뭐지... 풀긴했는데 8달전에 푼거보다 메모리랑 시간이 더 결렸다. ... 당황스럽다..ㅋㅋㅋ 코드는 작아지긴 했는데 솔직히 이번에 다시풀때 집중이 안돼서 너무 힘들었다,..ㅠ 이 문제는 벽세우기가 다인 문제다. 벽 세우고, (dfs) 바이러스 뿌리고, (bfs) 세면 된다. 이거를 반복시킨다. 원상복구할때 그거를 잘못생각해서 한참 해맸는데 비슷한 유형 문제를 몇번 풀어보면 될듯싶다. package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.St..
-
[ 백준 ][ 자바 ][ 3055 ] 탈출코딩/알고리즘 2019. 6. 19. 21:38
이 문제를 8달전에 풀었었다니.. 사실 어떻게 보면 그렇게 실력차이가 많이 안나보이지만 예전 코드를 보고 지금 코드를 봤을때 확실하게 깔끔해진게 눈에 띄긴한다.. 거기다 이런 bfs 문제는 익숙해서 그런지 빠르게 풀고 원큐에 맞췄다 여튼! 이문제는 물과 , 비버 두개의 큐를 이용하면 되는 bfs 문제인데 문제 조건중에 물이 이동할 부분은 비버가 못간다고 한다 그렇다면 즉... 물을 먼저 이동시키면 된다는 이야기... 물을 먼저 이동시키고 그다음에 비버를 이동하면 풀리는 문제다 package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Linke..
-
[ 백준 ] [ 자바 ][ 1931 ] 회의실 배정코딩/알고리즘 2019. 6. 18. 23:25
이 문제는 코드는 간단하나 그 원리가 제일 중요한데 원리에서 도출되는 정렬순서, 방법 ( comparator ) 주 쟁점인듯 하다 . 그리디 알고리즘에서는 정당성을 고려하는데 이 부분에 대해서 공부가 필요할듯 싶다 ( 귀류법 ) package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.StringTokenizer; class Bis{ int start; int end; Bis(int sta..