목록algorithm/BOJ (26)
connecting the dots
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6Gszn/btqXDeNvK2j/1VwAVgghk42kmKIv63uFOK/img.png)
문제 www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 풀이 수행하는 회전 수를 기준으로 for문을 돌린다. 회전을 할 때마다 시작점을 (0, 0) , (1, 1) , .. (i, i)에서 시작하도록 해서 for문의 i를 이용할 수 있다. 이후에는 해당 범위를 벗어나면 방향이 달라지도록 해주면서 한 칸씩 수를 옮긴다 / 이 때 가장 처음 칸은 temp 등의 변수에 따..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bHJep7/btqWx50cKhA/8rLnERklZqEDF7Yvo7EFAK/img.png)
문제 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 풀이 주의해야 할 점은 이 컨베이어벨트는 위에서 바라본 방향이 아니라 옆에서 바라본 거라는 점이다. 정말 시키는 대로만 구현하면 되지만 처음에는 로직이 잘 이해가 안 가서 헤맸다. 컨베이어벨트는 다음의 순서를 반복한다. 벨트가 한 칸 회전한다. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한 칸 이동할 수 있다면 이동한다. 만약 이동할 수 없다면 가만히 있는다. 로봇이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/biixMV/btqWx5EP8p3/sFD5UM0AcJi2PFwWc4aMNK/img.png)
문제 www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 간단한 문제인데도 접근을 잘못해서 너무 복잡하게 하다가 .. 배열 인덱스를 자꾸 벗어나서 망했다. 원래는 큐를 사용하려다가 큐는 인덱스로 접근할 수가 없어서 그냥 ArrayList를 사용했었는데 굳이 인덱스를 사용하지 않아도 k값을 알고 있기 때문에 큐로 더 간단하게 풀 수 있었다. 방법은 다음과 같다. k값은 cnt라는 변수에 저장해준다 큐에서 값을 꺼내고 k번째 사람이 아니면 다시 add해서 맨 뒤로 보내버린다 이 때 cnt--해주며 k번째인 사람을 찾는다 k번째 사람을 찾으면 정보를 S..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bQ62II/btqV0E9Tfl4/cLqqoIoWwQBHzKEWbAMkSk/img.jpg)
문제 www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 사실 문제 이해가 안 되서 애를 먹었다 .. 내 국어능력이 이정도였나 싶었다 .. 문제만 제대로 이해한다면 구현은 생각보다 어렵지 않은 문제다. 정말 딱 시키는대로만 하면 되는. 내가 문제를 제대로 이해하지 못해서 접근을 잘못했던 것은 다음과 같다. 청소를 이미 완료했어도 해당 구역을 지나갈 수는 있다는 점 / '이미 청소한 곳은 다시 청소하지 않는다'는 의미를 '이미 청소한 곳은 다시 지나가지 않..