목록전체 글 (44)
시간이 NullNull
1초에 한번씩 원자들이 움직이는데 충돌할 경우 그대로 에너지를 방출하고 소멸한다 이 때 방출된 에너지의 총합을 구하는 문제이다. 문제의 이름부터 아주 고정관념이 한참 생겨 무조건 시뮬레이션으로 풀어야지! 라는 생각에 여러번 틀렸던 문제이다. 하지만 생각해보면 충돌할 경우만 생각하여 에너지만 구해주고 끝내면 되는 문제이다. ( 시간이 무한히 흐른다면 ( 이 문제의 경우 최대 2000초(문제 내에서 시간) ) 충돌되지 않은 원자들은 밖으로 빠져 나간다. 빠져나간 원자들은 고려하지 않아도 된다. 이 원자들은 평생 만날 일이 없기 때문이다.) 주변에 어떤 친구는 0초부터 2000초 까지 for문을 통해서 모든 경우를 다해준 경우도 있었고 이전 포스트들에서 본 것처럼 또 충돌 나는 것들은 여러개의 Map을 통해서..
음 이전의 미생물 격리를 풀고난 뒤 바로 풀었기 때문에 똑같은 조건에서 풀었는데 생각보다 효율이 좋지 않았다. 이러한 방법이 있다는 것을 참고만 하고 보시는 것을 추천드립니다. 1. 낚시꾼은 결국 j가 0일때 부터 j가 c-1일때 까지 잡는다 2. 상어 친구들이 움직인다. 정지한 좌표가 같을 경우 크기가 큰 상어가 작은 상어를 잡아 먹는다. ( 보통 상어가 커지게 하는 데 이 문제의 경우 상어의 크기는 항상 유지 된다.) 3. HashSet을 이용하여 잡아먹힌 상어를 제외하고 다시 list에 넣는다! 이 문제가 살짝 어려운 경우 이전 포스트인 미생물 격리를 한번 보고 온다면 이 설명이 더 편하게 이해가 갈 것이다. 예전과 다르게 왜 Queue가 아닌 list를 썼느냐고 물어본다면 예전에는 움직이고 서로 ..
이 문제는 무려 5초를 주었다는 점과 N의 수가 작아 N*N을 하더라도 10000인 점 미생물의 수가 1000개 이하라는 점이 무조건 시뮬레이션이라는 생각이 들어 쉽게 풀게 되었다. 내가 사용한 변수들은 int[][] maxMap, int[][] dirMap, int[][] sumMap 이다 이름만 봐도 어떤 용도인지 알겠으나 나중에 더 자세히 설명하겠다. 1. m일 동안 진행하기 때문에 0~m-1까지 for문 돌기 2. 미생물이 합쳐지기도 죽기도 하기때문에 list가 아닌 Queue 사용 하였는데 하루동안 한칸만 움직여야 하기때문에 Q의 사이즈를 이용하여 그만큼만 for문을 돌아주었다. 3. 문제에 나와있듯이 한칸 움직인 후 배열의 가장 바깥쪽 칸들에 가면 크기를 반으로 줄이고 방향을 반대로 바꿔주었다..