구현 4

[백준] 19237 어른 상어

문제 링크 : www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 문제 유형 구현, 시뮬레이션 이전 문제인 [백준] 17822 원판 돌리기 와 같이, 상어를 클래스 형태로 구현한다. 동일 칸에서는 작은 상어가 반드시 남게 되므로, 상어의 이동은 번호가 높은 순으로 진행한다. 이렇게 하면 따로 예외 처리를 하지 않고도 덮어쓰기 개념으로 겹치는 상어에 대한 처리를 할 수 있게 된다. 이 풀이에서는 상어의 냄새가 어떤 상어..

[백준] 17822 원판 돌리기

문제 링크 : www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 문제 유형 구현, 시뮬레이션 이런 시뮬레이션 형태의 구현 문제는, 어떠한 동작을 수행하는 매개체를 클래스 형태로 구현하면 비교적 깔끔하게 구현이 가능하다. 이 문제에서는 각 원판을 disk라는 클래스로 정의하고, 이 클래스 내부에 회전 및 인접 값 제거 메소드를 구현했다. 각 원판의 숫자들은 deque 형태로 저장해 회전 구현을 쉽게 할 수 있도록 했고, 인접 값 참조를 쉽게 할 ..

[프로그래머스] 뉴스 클러스터링

문제풀이 : programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 유형 구현, Map 두 문자열의 각 두 문자씩을 분리해 Map에 원소로 넣는다. 이 풀이에서는 map

[프로그래머스] 자물쇠와 열쇠

문제 링크 : programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 유형 Brute Force, 구현 [2020 카카오 블라인드 코딩 테스트] key와 lock의 크기가 작으므로, 모든 경우를 탐색함으로써 자물쇠를 열 수 있는 경우를 찾아내는 문제이다. key의 일부분만으로 lock을 맞춰도 관계없으므로, key의 가능한 모든 위치를 계산하기 위해 lock을 3배의 크기로 확장하여 구현한다. (코드의 extend_lock) key를 회전하는 함수와, key와 lock의 돌..