목록알고리즘 문제 풀이 (61)
굥뷰를 햡시댜
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명을 각각 다른 위치에 배치하는 경우를 백트래킹으로 구현했습니다. ->..
하루 공부한 것 리마인드겸 티스토리를 시작하게 되었습니다. 저는 알고리즘 문제 풀이용 언어로 C/C++을 선택했습니다. 컴퓨터 공학을 전공하면서 가장 처음 접했던 프로그래밍 언어이기도 하고 가장 자신있으며 친숙하다고 생각했기 때문입니다.(다른 언어들도 다룰 수 있지만 그것들은 추후에 따로 시간이 된다면 다시 공부하고 올리도록 하겠습니다...) 또, C++에는 STL이라는 아주 잘 만들어진 라이브러리가 있어서 초보자도 조금만 공부한다면 문제 풀이에 유용하게 사용할 수 있습니다. 처음 알고리즘 문제 풀이에 어떤 언어를 선택해야할지 고민이신 분들은 저처럼 자신이 익숙하거나, 아니면 혼자 스터디할 때 자료가 많은 C++을 사용하시는 것을 추천합니다! 알고리즘 문제 풀이에 대한 글을 포스트 하기전에 앞서, 간단하..