2018/10
-
[백준][자바][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로 해결하더라.다음 문..