목록자바 (15)
시간이 NullNull
음 이전의 미생물 격리를 풀고난 뒤 바로 풀었기 때문에 똑같은 조건에서 풀었는데 생각보다 효율이 좋지 않았다. 이러한 방법이 있다는 것을 참고만 하고 보시는 것을 추천드립니다. 1. 낚시꾼은 결국 j가 0일때 부터 j가 c-1일때 까지 잡는다 2. 상어 친구들이 움직인다. 정지한 좌표가 같을 경우 크기가 큰 상어가 작은 상어를 잡아 먹는다. ( 보통 상어가 커지게 하는 데 이 문제의 경우 상어의 크기는 항상 유지 된다.) 3. HashSet을 이용하여 잡아먹힌 상어를 제외하고 다시 list에 넣는다! 이 문제가 살짝 어려운 경우 이전 포스트인 미생물 격리를 한번 보고 온다면 이 설명이 더 편하게 이해가 갈 것이다. 예전과 다르게 왜 Queue가 아닌 list를 썼느냐고 물어본다면 예전에는 움직이고 서로 ..
주요 포인트! 1. 09:00 부터 n회 t분 간격으로 역에 도착한다. 나의 경우 09:00 부터라는 것을 제대로 못봐 문제가 이해가 되지 않아 한참동안 고민을 하였다. 2. m명을 태우면 더이상 태울 수 없다 ( 단, 기다리고 있는 줄은 유지된다. ) 이를 기준으로 나는 그냥 단순히 09:00 부터 각 셔틀버스마다 태울 수 있는 만큼 태우자 그리고 끝난 뒤에 1. 마지막 버스에 m명이 가득 차 있다면 마지막에 탄사람보다 1분 일찍오자! 2. 마지막 버스에 자리가 빈다면 마지막 버스가 도착할 시점에 오도록 하자! 이를 구현하기 위해서 우선 크루들이 도착하는 시간을 오름차순으로 정렬해야한다. 그래야 시간 순으로 버스에 태울 수 있기 때문이다. 그리고 시간 계산과 대소관계 비교를 원활하게 하기 위해서 시간 ..
java 트라이 알고리즘, Trie 알고리즘 등등으로 검색해서 오신 분들은 귀찮더라도 개념 자체는 다른 분들이 친절하게 그림까지 다 그려가면서 설명을 잘 해놓았기 때문에 다른 분들 글과 그림을 보면서 설명을 듣고 오시길 바랍니다! 사실 저도 엄청 검색을 해보고 많은 글을 보고 했었는데 먼가 진짜 쉽게 짜놓은 트라이 알고리즘은 없어서 이 새벽에 미친 듯이 고민해가며 트라이를 짜왔습니다. 문제는 SW Expert에 문자열 교집합이라는 문제를 참고로 하였고 사실 이 문제는 트라이로 풀면 메모리가 오버되어 절대로 풀 수가 없습니다. ㅎ.... 이거 때문에 왜 런타임 에러일까 하면서 한참을 고민했네요 B형을 준비하시는 분들은 LinkedList를 구현하는 것을 먼저 보고 오시길 추천드리며 LinkedList를 아..
N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오. 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) 문제는 매우 간단하지만 어떻게 확인하느냐를 가지고 매우 고민했다. 처음에 I를 찾으면 내가 원하는 IOIOI 등등이 맞는지 확인하였으나 전체 배열을 돌면서 확인하기때문에 엄청난 횟수를 돌게 된다. ( for문만 돌게되면 충분히 가..
문제를 요약을 하면 1. 배열이 입력으로 들어온다. 2. 회전하는 명령어가 입력으로 들어온다. 3. 회전하는 명령어를 순서를 바꾸면서 실행하여 최소값을 찾는다. 참고로 저는 제 코드를 참고하시지 않는 것을 추천드립니다.... 정말 힘들게 짰어요 회전하는 명령어의 경우 중심점의 좌표와 좌표로부터의 거리? 좌표부터의 가로 혹은 세로 길이를 나타내고 무조건 시계방향으로 돌리면 된다. 나의 경우.... 정말 힘들게 생각했는데 문제를 풀 당시 시계방향으로 돌면서 모든 것을 돌리는 방법을 찾지 못했고 따라서 한줄씩 하면 어떨까라는 생각으로 풀었다. 코드를 보면 ( 이해하기 힘들지만....) 중심점을 기준으로 위의 가로줄, 밑의 가로줄, 오른쪽의 세로줄, 왼쪽의 세로줄을 하였고 이 경우 명령어가 (3,4,2) 일때 ..