공부하고 기록하는, 경제학과 출신 개발자의 노트

삼성A형기출문제 3

[Python] 백준 17472. 다리만들기2

https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 백준에 삼성A형 기출문제로 분류되어 있다. 검색이 통제된 시험장 가서는 절대 못 풀 것 같은 문제. bfs로 라벨링하고 최소 거리 구하는 것까지는 혼자서 처리할 수 있었는데, union find 코드는 예전에 내가 쓴 코드 다시 보고 만들어야 했다. 문제를 풀기 위해 생각해야 할 개념은 크게 세 가지다. 1. 각 섬을 구분해 준다. (섬별로 Labeling 해 준다고 보면 된..

[Python] 백준 17135. 캐슬 디펜스

https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 문제 조건에 맞게끔 코딩하면 되는 시뮬레이션 문제. 조건에 맞는 방법을 구현하는 데 삽질을 꽤나 많이 했다. 문제의 조건에서 가장 까다로웠던 부분은 '궁사의 적 공격 조건'이었다. 1. 거리가 D 이하인 적들 중 가장 가까운 적. 2. 가까운 적이 여러 명이면 '가장 왼쪽'의 적을 공격한다. 3. 여러 궁사가 같은 적을 공격할 수 있다. 여기서 '가장 왼쪽'의 적을 선택하는 방법을 구현해보려고 - 궁사의 위..

[Python] 백준 17070. 파이프 옮기기 1

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 www.acmicpc.net 이전에 풀었던 '등굣길' 형태의 길찾기 문제의 심화 버전 느낌이었다. [Python] 프로그래머스. 등굣길 (Level 3)..