[백준 5525번] 파이썬 - IOIOI
http://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net # 조건 N+1개의 I와 N개의 O로 이루어져 있으면서, I와 O가 교대로 나오는 문자열을 Pn 이라고 한다. P1 = IOI, P2 = IOIOI I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 Pn이 몇 군데 포함되어 있는지 구하는 프로그램 작성 1
2022.10.12
[백준 17281번] 파이썬 - ⚾
http://www.acmicpc.net/problem/17281 # 조건 총 N 이닝 동안 게임을 진행 한 이닝에 3아웃 발생하면 이닝 종료 안타: 1 2루타: 2 3루타: 3 홈런: 4 아웃: 0 1번 선수는 무조건 4번 타자로 결정 다른 선수의 타순을 모두 결정해야 하는데 가장 많이 득점하는 타순을 찾고, 그 때의 득점을 출력 다음 이닝이 진행 될 때에는 직전 이닝의 마지막 타자 다음 타순부터 시작한다. # 접근 방법 타순을 세우는 순열을 만들어 줄건데 1~9번이 아닌 2~9번의 타자의 타순을 정해준다. 이후 4번 타자로 고정되어 있는 1번 타자를 slicing을 통하여 가운데 넣어준다. 각 베이스 정보 리스트를 만들어주어 후속 타자의 타격 결과에 따른 조건문을 만들어 준 후 정보를 갱신해주며 득점..
2022.10.11
[백준 5430번] 파이썬 - AC
http://WWW.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net # 조건 AC 언어는 정수 배열에 연산을 하기 위해 만든 언어 R(뒤집기)와 D(버리기) 함수가 존재 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수 비어있는데 D를 사용하면 에러 첫줄 tc 개수 T 각 테케의 첫 줄에는 수행할 함수 p (1 popleft와 reverse 사용 또한 비어있는 경우가 있으므로 try, except을 이용해준다. # 시간 초과 import sys sys.stdin = open('input.tx..
2022.10.11
[백준 2667번] 파이썬 - 단지 번호 붙이기
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net # 조건 정사각형 모양의 지도가 있다. 1은 집이 있는 곳, 0은 집이 없는 곳 연결된 집의 모임의 단지를 정의하는데, 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다 총 단지수를 출력하고 각 단지에 속하는 집의 수를 오름차순으로 출력하라. # 접근 방법 및 solution 델타 함수를 이용한 dfs를 이용하여 연결된 단지를 체크해준다. 방문한 집들의 값을 0으로 변..
2022.10.11
no image
[백준 17406번] 파이썬 - 배열 돌리기4
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net # 조건 크기가 NxM 크기인 배열 A 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미 배열은 회전 연산을 수행할 수 있는데 회전 연산은 (r,c,s) 세 정수로 이루어져있다. 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아래 칸이 (r+s, c+s)인 정사각형을 시계 방향으로 한 칸씩 돌린다는 의미 예 - 회전 연산 (3,4,2) 회전 연산이..
2022.10.10
no image
[백준 17276번] 파이썬 - 배열 돌리기
https://www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net # 조건 크기가 n x n 인 2차원 정수 배열 X X를 45° 의 배수만큼 시계방향 혹은 반시계방향으로 돌리려고 한다. X를 시계 방향으로 45° 돌리면 아래와 같은 연산이 동시에 X에 적용되어야 한다: X의 주 대각선을 ((1,1), (2,2), …, (n, n)) 가운데 열 ((n+1)/2 번째 열)로 옮긴다. X의 가운데 열을 X의 부 대각선으로 ((n, 1), (n-1, 2), …, (1, n)) 옮긴다. X의 부 대각선을 X의 가운데 행 ..
2022.10.10
no image
[백준 2579번] 파이썬 - 계단 오르기
https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 조건 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임 계단을 밟으면 해당 계단에 쓰여 있는 점수를 얻게 된다. 아래 규칙을 지켜서 얻을 수 있는 점수의 최댓값을 구하라 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다..
2022.10.10
[백준 2178번] 파이썬 - 미로 탐색
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net # 조건 NxM 크기의 배열로 표현되는 미로 1은 이동할 수 있는 칸, 0은 이동할 수 없는 칸 (1,1) 에서 출발하여 (N,M)의 위치로 이동할 때 지나야 하는 최소 칸 수를 출력 # 접근 방법 BFS를 통하여 탐색을 진행한다. Queue에 넣어주며 방문기록을 현재 좌표+1로 해준다. 간선의 가중치가 모두 같은 그래프로 생각할 수 있기 때문에 bfs를 이용한다면 최단 경로를 바로 구할 수 있다. import sys sys.s..
2022.10.10
[백준 1992번] 파이썬 - 쿼드트리
https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net # 조건 흑백 영상을 압축하여 표현하는 데이터 구조 쿼드 트리 흰 점을 0, 검은 점을 1로 표현하는 2차원 배열 모두 0으로만 되어 있으면 압축 결과 '0' 모두 1로만 되어 있으면 압축 결과 '1' 섞여 있다면, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 -> 4개의 영상으로 나누어 압축 압축한 결과를 차례대로 괄호 안에 묶어서 표현 2^i 개를 하나로 압축 가능하며 하나로 ..
2022.10.09