코딩/알고리즘
-
[백준][자바][1021]회전하는 큐코딩/알고리즘 2018. 10. 11. 22:21
와...진짜 문제를 잘읽어야한다그냥 덱을 생각하고 짯는데 알고보니까 뒤로 뺴는게 안되더라전체적으로 문제를 이해하는데 시간도 오래걸렸다... 오늘 문제를 제대로 이해하고 다시해보니...20분만에 풀어버렸다... ...문제는 다음과같다 예를 들어 7 4 4 6 7 5라고 하면 1 2 3 4 5 6 7 이라는 큐에서 4 6 7 5숫자를 찾으면된다 .숫자위치라는데 해당 숫자를 찾는거다...이거때문에도 한참 해맷다.. 한번 해보자면 1 2 3 4 5 6 7 중 4 앞에 3개, 뒤에도 3개가 있다 이럴 경우는 앞에서 부터 뒤로 보낸뒤 poll 하면된다. 3번이 카운트 된다 ans = 3 5 6 7 1 2 3 중 6을 뽑으면 된다 6앞에는 1개 뒤에는 4개가 있다볼것도 없이 앞에 것을 뒤로 밀고 poll하면 된다 1..
-
[백준][자바][2146 다리] 해결못함코딩/알고리즘 2018. 10. 7. 21:08
ㅠㅠ..또 해결못했다 접근 방법은 맞는거 같은데 뭐가 문젠지 찾지못했다...잠시 쉬었다해야곘다...너무 힘ㅁ들다....package aa; 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 b_Point{ int x; int y; b_Point(int y, int x){ this.x = x; this.y = y; } } public class backjoon_2146_다리 { static int[][] map = new int..
-
[백준][자바][5427 불]코딩/알고리즘 2018. 10. 7. 17:05
맞았다 저번에 못풀었던 문제라서 다시 도전했는데바뀐건 다음과 같다'일단 1. BufferedReader,StringTokenizer 를 사용해서 입출력시간을 줄이고2. 객체 생성하는 걸 피하고3. 한테스트 케이스 마다 출력하고 초기화를 진행했다.그래서.. .실패했다..뭐지 싶었다.. 저번도 33%에서 시간초과였는데...다른문젠가..싶어서..질문 검색을 찾아보니"queue에 중복으로 들어가는 것을 막으셔야합니다." 라고 하더라..생각해보니 상근이든 불이든 큐를 넣게 되면 큐의 사이즈는 계속 비대하게 쌓여간다어떻게하면 막을수 있을까 생각해보니 그냥 단순하게 visit 배열을 만들면될거같았다만들고 실행하니 성공했다.ㅎㅎ메모리가 커보여서 동적으로 배열도 만드니 절반이나 메모리가 줄었다.ㅠ 너무 놀았다...약속이..
-
[백준][자바][1063]킹코딩/알고리즘 2018. 10. 2. 23:24
와....이게 뭐라고...거의 푸는데 세시간 가까이 걸렸다..버그잡는데만 2시간을 쓴 것 같다..난 문제를 정말 잘 안 읽는다 좋은 설계가 있어야지 생고생을 안 하는듯 싶다...문제는 간단하다여기서 시뮬레이션 문제라 설명해주는 데로 구현하면 된다.나는 /*입력으로 주어진 대로 움직여서 킹이나 돌이 체스판 밖으로 나갈 경우에는 그 이동은 건너 뛰고 다음 이동을 한다.*/ 라는 부분을 주의 깊게 생각하지 않았는데 킹이 움직일 수 있어도 돌이 움직이지 못하면 말짱 꽝인 것이다. 나는 킹부터 움직여놓고 돌이 움직이는게 가능한지를 했는데두개가 가능해야 둘다 움직인다. 라는 아주...아주 간단한 걸 분기처리를 안해놔서...정말 고생을 했다.. 중간에 너무 지쳐서 리펙토링을 생각 못한...거의 레거시 코드라 창피하다..
-
[백준][자바][14502]연구소코딩/알고리즘 2018. 10. 1. 08:45
이 문제를 풀면서 2가지의 문제점을 찾았다1. 문제를 제대로 안읽음2. 조건처리를 제대로 안함 사실 두번째는 첫번째의 하위 항목에 해당하는 것이긴 하지만..대충 푸는데 2시간 정도 걸렸다(틀렸지만)맨처음엔 안전영역중에 최대영역인줄알고 dfs로 안전영역들을 찾아서 돌렸다근데 알고보니 최대안전영역이였다...그냥 간단하게 해결했다 이 문제는 완전탐색 문제였는데나는 항상 완전탐색 문제에 루프문들을 짜다보면 조금 시간초과가 걱정이된다...이부분은 내가 시간복잡도를 계산하는데 문제가 있다는 말이겠지. 로직은 크게 이런 로직을 따른다. 1. 벽세우기2. 바이러스 뿌리기3. 안전영역 계산4. 다시 되돌리기5. 1로 돌아간다 나는 1번 벽세우기가 조금 애로사항이였는데..ㅋㅋ 다른 분들을 보니 dfs로 해결하더라.다음 문..
-
[백준][3055][자바] 탈출코딩/알고리즘 2018. 9. 30. 00:46
아...될거같다 말았다 ㅜㅜ역시 오랜만에 풀어서 그런가..요즘 바쁘다.. 하이차트에 치여서 고생중이다..한글로 된 문서가 없어 내가 만들것들로 아주 정리를 다 해놔야겠다..여튼 ..여러번 풀다 결국엔 다른분 답을 참고했는데 그래도 불행 중 다행인건 접근 방법은 똑같았다는것..?..ㅜ내 코드를 뭉텅 뭉텅 잘라내고 살짝 로직을 수정했다큐 반복문을 함수안에서 돌린다는거 정도?일단 이 문제를 풀고 다른사람 코드를 참조하면서 배운점은 1. 난 쓸때없는 예외처리가 많음2. 분기점 위치를 잘 못잡음 간추리자면 이정도가 되겠다..(엄청 많음)그래도 오랜만에 푼 것 치고는 만족...ㅜ 코드 참조안하고 맞추고싶다.. import java.util.Iterator; import java.util.LinkedList; imp..
-
[백준][자바][5532]방학숙제코딩/알고리즘 2018. 9. 15. 18:51
뭐야 코딩문제 안푼지 약 2주가 지나있었다..헐;; 이틀에 한번씩 풀다가잠시 안푼거인줄 알았는데 꽤나 충격적이다..ㅋㅋㅋㅋ이문제는 걍 문제집에 있길래 푼건데 매우 간단한 문제였다그냥 시뮬레이션 문제인데...뭐 시뮬레이션이라 할것도 없다.그래도 느낌이라도 내보고자 시뮬레이션 돌리듯(?) 풀었다코드는 더럽지만 ㅎ ..ㅎimport java.util.Scanner; public class backjoon__5532_방학숙제 { static int L; //방학 총 static int A; //국어 static int B; //수학 static int C; //국어 푸 는 수 static int D; //수학 푸는 수 public static void main(String[] args) { Scanner sc ..
-
[백준][자바]2468 안전영역코딩/알고리즘 2018. 9. 3. 22:47
초반에 문제를 잘못 읽어서 조금 헤맨 문제 주말 쉬어서 bfs 까먹었을 줄 알았는데 아닌가보다 그리고...뭔가 처음 해답 안보고 맞춘. bfs 문제가 아닐까 싶다..ㅋㅋㅋㅋㅋ 나는 맥스 높이를 세고 거기서 bfs를 반복했다 가장 높은 영역이 9면 1부터 8까지 bfs를 진행하여 영역이 가장 큰 것을 답으로 제출하면되더라 예전에 친구가 쉬운문제라고 했던 기억이 난다. 그땐 몰랐는데 지금 보니까 쉬운거 같네... import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Point_{ int x; int y; Point_(int y, int x ){ this.x = x; this.y = y; } } public cl..