목록알고리즘 문제 풀이/BOJ 문제 풀이 (32)
굥뷰를 햡시댜
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 www.acmicpc.net 2019년 3월 상시 SW역량 테스트 출제 문제와 유사 문제입니다. 이런 유형의 문제를 처음 접해봐서 당시 시험장에서 푸는데..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net 2019년 하반기 모 기업의 코딩테스트 문제 입니다. '거리가 가장 가까운 물고기를 먹는데 거리가 같을 경우 가장 위에 있는 물고기..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net 2017년 하반기 모 기업 코딩테스트 문제입니다. 더 이상 인구 이동이 없을 때까지 지속된다는 반복 조건을 처리해주는 것에 대한 경험..
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하 www.acmicpc.net 2019년 상반기 모 기업의 코딩테스트 유사 문제입니다. 쉽다는 사람들이 대부분이었지만 처음 코드를 짰을때 시간초과가 많이 나서 코드를..
https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 www.acmicpc.net 2019년도 상반기 모 기업의 코딩 테스트 문제로 나왔었던 문제이다. 당시 시험장에서는 더 높은 10만이었나? 아무튼 더 높은 수의 범위를..
https://www.acmicpc.net/problem/17142 문제 풀이 시간 : 2시간 예제 케이스를 디버깅하다가 비활성 바이러스를 활성 바이러스로 바꿔줬을 때 소요시간 처리하는 것에서 잘못된 값이 들어가는 것을 확인하고 이것을 수정해주느라 시간이 많이 걸렸다. 실제 시험장에서 긴장했을 경우, 실수했을때 소요되는 시간을 고려해본다면 아마 3시간 동안 한 문제를 간신히 풀었을 것으로 생각된다.. 내가 생각하는 문제의 요점은 바이러스를 퍼뜨리는데 소요되는 시간을 정확히 구해야 한다. (비활성 바이러스를 활성화 바이러스로 바꾸는 것은 바이러스를 퍼뜨리는 것이 아님) -----------------------------------------------------------------------------..
https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 왼쪽 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼 www.acmicpc.net 2019년 상반기 삼성전자 ds 기출문제중 한 문제와 유사한 문제입니다. 저는 BFS를 이용해 풀었고 난이도는 이전의 삼성 역..
https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 시뮬레이션 문제입니다. 매번 dfs, bfs 문제만 풀다가 처음으로 시뮬레이션 문제를 풀어봤습니다. 일단 문제 풀이에 앞서, 제가 이 문제를 풀 때 접근했던 생각 4가지를 공유해드리겠습니다. 1. 적의 위치 정보를 따로 저장했습니다. -> 따로 저장해두지 않으면 적의 위치를 찾는 것부터해서 탐색 시간이 길어질 것 같았습니다. 2. 궁수 3명을 각각 다른 위치에 배치하는 경우를 백트래킹으로 구현했습니다. ->..