Python 929

[DFS/BFS] 이코테 (파이썬) 인구 이동 풀이

[문제] N x N 크기의 땅이 있고, 땅은 1 x 1개의 칸으로 나누어져 있습니다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있습니다. 인접한 나라 사이에는 국경선이 존재합니다. 모든 나라는 1 x 1 크기이기 때문에, 모든 국경선은 정사각형 형태입니다. 오늘부터 인구 이동이 시작되는 날입니다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속됩니다. 1. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 엽니다. 2. 위의 조건에 의해 열어야 하는 국경선이 모두 열렸다면, 인구 이동을 시작합니다. 3. 국경선이 열려 있어 인접한 칸만을 이용해 이동..

백준(Python) 18428번 감시 피하기 풀이

Python으로 구현한 18428번 감시 피하기 문제 풀이입니다. https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net from itertools import combinations n = int(input()) # 복도의 크기 board = [] # 복도 정보(N x N) teachers = [] # 모든 선생님 위치 정보 spaces = [] # 모든 빈 공간 위치 정보 for i in range(n) : board.append(list..

[DFS/BFS] 이코테 (파이썬) 감시 피하기 풀이

[문제] N x N 크기의 복도가 있습니다. 이 복도는 1 x 1 크기의 칸으로 나누어지며 특정한 위치에는 선생님, 학생, 혹은 장애물이 있습니다. 현재 학생 몇 명이 수업 시간에 몰래 복도에 나왔는데, 복도에 나온 학생들이 선생님의 감시에 들키지 않는 것이 목표입니다. 각 선생님은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행합니다. 단, 복도에 장애물이 있으면 선생님은 장애물 뒤편에 숨어 있는 학생을 볼 수 없습니다. 또한 선생님은 시력이 매우 좋아 아무리 멀리 있더라도 장애물로 막히기 전까지 4가지 방향으로 학생을 모두 볼 수 있다고 합니다. 문제에서 위칫값을 나타낼 때는 (행, 열)의 형태로 표현합니다. 각 칸은 선생님이 존재하면 T, 학생이 존재하면 S, 장애물이 존재하면 O로..

백준(Python) 14888번 연산자 끼워넣기 풀이

Python으로 구현한 14888번 연산자 끼워넣기 문제 풀이입니다. https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net n = int(input()) # 연산을 수행하고자 하는 두 리스트 data = list(map(int, input().split())) # 더하기, 빼기, 곱하기, 나누기 연산자 개수 add, sub, mul, div = map(int, input().split()) # ..

[DFS/BFS] 이코테 (파이썬) 연산자 끼워 넣기 풀이

[문제] N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어집니다. 또, 수와 수 사이에 끼워 넣을 수 있는 N-1개의 연산자가 주어집니다. 연산자는 덧셈 (+), 뺄셈 (-), 곱셈 (*), 나눗셈 (/) 으로만 이루어져 있습니다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있는데 이때 주어진 수의 순서를 바꾸면 안됩니다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(*), 나눗셈(/) 1개인 경우에는 총 60가지의 식을 만들 수 있습니다. . . . N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성하세요...

백준(Python) 6749번 Next in line 풀이

Python으로 구현한 6749번 수강변경 문제 풀이입니다. https://www.acmicpc.net/problem/6749 6749번: Next in line You know a family with three children. Their ages form an arithmetic sequence: the difference in ages between the middle child and youngest child is the same as the difference in ages between the oldest child and the middle child. For example, their ages c www.acmicpc.net y = int(input()) m = int(input()) ..

백준(Python) 12927번 배수 스위치 풀이

Python으로 구현한 12927번 배수 스위치 문제 풀이입니다. https://www.acmicpc.net/problem/12927 12927번: 배수 스위치 첫째 줄에 전구의 상태가 1번 전구부터 차례대로 주어진다. Y는 전구가 켜 있는 경우, N은 전구가 꺼져있는 경우이다. 전구의 개수는 1보다 크거나 같고 1,000보다 작거나 같은 자연수이다. www.acmicpc.net n = list(input()) n.insert(0, 'N') result = 0 for i in range(1, len(n)) : if n[i] == 'Y' : for j in range(i, len(n), i) : if n[j] == 'Y' : n[j] = 'N' else : n[j] = 'Y' result += 1 prin..

[구현] 이코테 (파이썬) 좌물쇠와 열쇠 풀이

[문제] 고고학자인 튜브는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 좌물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 좌물쇠를 푸는 방법에 대해 다음과 같이 설명해주는 종이가 발견되었습니다. 잠겨있는 좌물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 좌물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이동이 가능하며 열쇠의 돌기 부분을 좌물쇠의 홈 부분에 딱 맞게 채우면 좌물쇠가 열리게 되는 구조입니다. 좌물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 좌물쇠를 여는 데 영향..

[그리디] 이코테 (파이썬) 무지의 먹방 라이브 풀이

[문제] 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어졌고 고민 끝에 카카오 TV 라이브 방송을 하기로 마음먹었습니다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 다음과 같이 독특한 방식을 생각해냈습니다. 회전판에 먹어야 할 N개의 음식이 있습니다. 각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요됩니다. 무지는 다음과 같은 방법으로 음식을 섭취합니다. 1. 무지는 1번 음식부터 먹기 시작하여, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓습니다. 2. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 옵니다. 3. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭..

[DFS/BFS] 이코테 (파이썬) 괄호 변환 풀이

[문제] 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '('의 개수와 ')'의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 부릅니다. 그리고 여기에 '('와 ')'의 괄호의 짝도 모두 맞..