본문 바로가기
[BOJ 15686] 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net 처음으로 1시간 내에 문제를 풀어봤다 ㅠ0ㅠ 삼성에 여러번 기출로 등장한 DFS 문제라서 쉽게 풀 수 있었다. 문제 분류는 브루트 포.. 2019. 4. 13.
[BOJ 16236] 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net https://www.youtube.com/watch?v=761ae_KDg_Q 문제 푸는 내내 이 노래가 머릿속에 맴돌았다 아기상어.. 2019. 4. 9.
[BOJ14889] 스타트와 링크 완전탐색 문제로 모든 경우의 수를 다 고려해야 하는 문제 두 팀의 능력치 차이만 구하면 되므로, 첫번째 사람은 무조건 스타트 팀에 속한다고 가정하고 2~N번째 사람을 DFS를 돌려서 답을 구할 수 있다 teamA(직관적이지 못한 변수명이다ㅠㅠ) 배열의 각 요소를 해당 사람이 A팀에 속했는지 여부라고 둘 수 있다. 만약 세 사람이 있다고 하면(| 아래는 각각의 상태에서 다시 DFS로 탐색할 경우) (0)() | (01)(), (02)(), (03)() | (012)(), (013)(), (014)() ... 같은 라인에서는 for문을 사용해서 한 명씩 할당한다. 할당한 다음에는 다시 탐색을 시작해 다음 사람을 정하고 정확히 인원수의 절반을 A팀에 할당했다면 능력치 합을 구하는 base case로 넘어가도록.. 2019. 3. 28.
[BOJ 15686] 드래곤커브 티스토리 에디터가 네이버 블로그처럼 바뀌었다... 예전 에디터보다 UI도 예쁘고 비직관적이었던 아이콘은 없애고 단어로 표현하는 것도 괜찮은 방법인 것 같다 마크다운 문서를 에디터 자체에서 편집할 수 있게 된 것, 코드블럭을 에디터를 통해 삽입할 수 있는 것도 좋다 개발자 친화적 환경 조와용 - 오늘(?) 푼 문제는 드래곤 커브. 정답률 50% 선을 자랑하는 꽤 쉬운 난이도의 문제지만 접근 방향을 몰라 처음에는 많이 헤멨다. 친절하게 스펙에서 규칙성도 다 가르쳐 줬는데...ㅎㅎㅎㅎㅎㅎㅎ 드래곤 커브 문제의 핵심(?)은 그 규칙성을 발견하는 것 도형을 시계 방향으로 90도 회전시켜서 끝점에 위치하게 하는 것은 실제로는 그 끝점을 기준으로 전체 도형을 반시계 방향으로 90도 회전시키는 것과 같다. 그래서 처음.. 2019. 3. 27.
[BOJ 14502] 연구소 구현 자체는 어렵지 않았지만, 방법을 떠올리는 것이 어려웠던 문제.BFS나 DFS를 이용하되, 바이러스가 있는 부분에서 BFS/DFS를 돌려서 바이러스를 퍼뜨린다는 생각의 전환(?) 이 필요한 문제 벽을 세울 수 있는 후보군을 뽑은 다음 3중 for문을 돌려서 각각의 경우의 수를 모두 판단해 주어야 해서 조금 난이도가 있었다ㅠㅠ... 사실 질문란을 좀 베꼈다......ㅠㅠㅠㅠㅠㅠㅠㅠ 반성해야지 ㅠㅠ처음에 망설인 이유가 3중 for문이라고? 그것보다 더 간단한 방법 없을까? 때문에 고민했던 건데실제 시험에서는 1문제 당 90분이라고 생각하면 이렇게 여유롭게 생각할 시간도 많이 없을 것 같아서 다른 파트의 구현을 먼저 생각하는 것이 맞는 것 같다. package samsung; import java.util.. 2019. 3. 24.
[BOJ14890] 경사로 문제 : https://www.acmicpc.net/problem/14890 2중 for문을 사용해서 전체 경로를 일일이 탐색하면서 경사로를 놓을 수 있는지를 판단하는 코드를 작성해야 한다 고려해야 할 점이 많은데, 특히 경사로 길이가 1인 경우를 염두에 두고 반복문 조건을 잘 설정하면 문제는 의외로 쉽게 풀린다 나는 그걸 못해서 좀 삽질을 했지만...ㅠㅡㅠ 푸는 방법은 각 열과 행을 순차적으로 방문하며 경사로를 놓을 수 있는지, 없는지를 판단하는 것 여러가지 경우의 수가 있는데 (1) 3 3 2 2 2 3 이고 경사로 길이가 2라면 건널 수 없다. 3, 3, 2... 순서로 방문하면서 경사로를 둘 수 있으면 두므로 slope배열에는 0, 0, 1, 1, 이 담긴다. 2->3으로 올라가는 경우는 다시 뒤.. 2019. 3. 23.