[Python] 프로그래머스. FloodFill (Level 3) 백준 '유기농 배추' 문제와 푸는 방식이 똑같다. image의 시작부터 끝까지 훓으면서, 방문하지 않은 좌표마다 bfs로 인접좌표에 같은 색상이 있는지 확인한다. bfs 함수를 호출할 때마다 count를 1씩 올려 주면 해결. 프로그래밍/코딩테스트 문제풀이 2019.12.17
[Python] 백준 1697. 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 www.acmicpc.net bfs로 풀 수 있는 문제. 수빈이 한 번 이동한 위치를 다시 가지 않도록 visited 좌표관리를 해야 한다. 프로그래밍/코딩테스트 문제풀이 2019.12.16
[Python] 백준 1012. 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. ( www.acmicpc.net bfs 문제풀이 방법을 익히기 위해 풀었던 문제. 2차원 배열에 배추가 있는 좌표만 기록한 후, 배열을 돌면서 배추가 있을 경우 bf.. 프로그래밍/코딩테스트 문제풀이 2019.12.15
[Python] 프로그래머스. 하노이의 탑 (Level 3) https://programmers.co.kr/learn/courses/30/lessons/12946 코딩테스트 연습 - 하노이의 탑 | 프로그래머스 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다. 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 하노이 탑의 programmers.co.kr 재귀호출의 가장 유명한 예시인 하노이 타워. 3개의 탑이 있고, 각각 .. 프로그래밍/코딩테스트 문제풀이 2019.12.14
[Python] 프로그래머스. 야근 지수 (Level 3) https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 | 프로그래머스 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 사항 works는 길이 programmers.co.kr heapq 자료구조로 해결할 수 있는 문제. python의 heapq 라.. 프로그래밍/코딩테스트 문제풀이 2019.12.13
[Python] 백준 1931. 회의실배정 https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 그리디 알고리즘 형태였던 걸로 기억한다. 가장 먼저 끝나는 회의부터, 끝나는 시간이 같다면 먼저 시작하는 회의를 우선 배정하는 식으로 처리한다. 종료 시간이 빠른 순으로 앞에서부터 일정을 채워넣는 형태. 프로그래밍/코딩테스트 문제풀이 2019.12.10
[Python] 백준 4195. 친구 네트워크 https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 문제 민혁이는 소셜 네트워크 사이트에서 친구를 만드는 것을 좋아하는 친구이다. 우표를 모으는 취미가 있듯이, 민혁이는 소셜 네트워크 사이트에서 친구를 모으는 것이 취미이다. 어떤 사이트의 친구 관계가 생긴 순서대로 주어졌을 때, 두 사람의 친구 네트워크에 몇 명이 있는지 구하는 프로그램을 작성하시오. 친구 네트워크란 친구 관계만으로 이동할 수 있는 사이를 말한다. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계 www.acmicpc.net Union Find의 응용문제. 친구 네트워크의 숫자를 구하기 위해, 하나의 거대한 union network의 parent에 '얼마.. 프로그래밍/코딩테스트 문제풀이 2019.12.09
[Python] 프로그래머스. 2018 카카오 recruit - 파일명 정렬 (Level 2) https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 | 프로그래머스 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예 programmers.co.kr Python의 정규식 관련 라이브러리인 re를 사용하면 쉽게 .. 프로그래밍/코딩테스트 문제풀이 2019.12.07
[Python] 프로그래머스. 다음 큰 숫자 (Level 2) https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 | 프로그래머스 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 programmers.co.kr 효율성 조건이 그리 빡세지는 않은 것 같다. 조건대로 구현하면 금방 .. 프로그래밍/코딩테스트 문제풀이 2019.12.06
[Python] 백준 2206. 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동 www.acmicpc.net BFS이면서 heapq 라이브러리를 활용하는 방식에서 실마리를 찾았고, 방문여부를 확인하는 visited배열에 하나의 dime.. 프로그래밍/코딩테스트 문제풀이 2019.12.04