코딩
-
[ 백준 ] [ 자바 ][ 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..
-
[ 백준 ] [ 자바 ][ 숨박꼭질] 1697코딩/알고리즘 2019. 6. 16. 19:36
런타임 에러가 자꾸 나서 뭔가했는데 if 문에서 맨 좌측에 visited배열을 참조 하게끔 선언해놓아서 범위 이상값을 참조하게 되는 경우도 있어 런타임 에러가 뜨는 것이였다. 처음에는 dfs로 진행하다가 스택오버플로우를 겪게 되서 bfs로 진행했는데 과거에 작성했던 코드보다는 깔끔해진것같다. package back; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Position{ int position; Position(int position){ this.position = position; } } public class Main_backjoon_1697_숨박꼭질_retry { static int N..
-
[ 백준 ][ 자바 ][ 1759 ] 암호만들기 retry코딩 2019. 6. 15. 15:24
로또랑 정말 비슷한 문제인데 자음 2개 모음 1개가 있다는 조건만 추가된 문제 dfs 개념 잡기에는 로또랑 이문제가 순차적으로 풀면 정말 좋을것같다! 중간에 멘붕나고 맘이 이상해져서 그냥 막풀어서 최적화를 못했다.ㅎ/.. package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_backjoon_1759_암호만들기_retry { static String[] vowel = {"a","e","i","o","u"}; static int L; s..
-
[백준][자바][17144] 미세먼지 안녕!코딩/알고리즘 2019. 4. 21. 22:48
아 머리아프다... 이 문제는 알고보면 풀란대로 풀면 끝나는 아주 간단한 문제인데. 선행학습이 안되어있으면 좀 삽질을 거듭할수 있다. 중점적으로 볼사항은 일단 퍼트릴떄 초기 맵을 건드리면 안되는 문제와 ( 그래서 COPYMAP 을 사용함) 공기 청정기 위 아래의 바람에 따라서 먼지의 이동만 잘 구현 해놓으면 풀리는 문제이다 큐를 써서 하려고 했는데 위와 같은 문제에 봉착해서 다른 분들 코드를 참고해서 포문 2개로 풀었는데 꼭큐를 쓸꺼야 하는 그런 강박관념은 없어도 될것같다. 아 그리고 보니...안쓰는 코드 정리를 안했네.... 곧 카페가 문을 닫아서 나중에 수정해야겠다.ㅠㅠ import java.io.BufferedReader; import java.io.IOException; import java.io..