문제 링크 https://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 소스 코드 import sys input = sys.stdin.readline n = int(input()) m = int(input()) s = input().rstrip() # 투 포인터 알고리즘 left, right = 0, 0 cnt = 0 while right < m: # m 범위 내에서 반복 # 3개 슬라이싱..
전체 글
문제 링크 https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 소스 코드 def num(m, n, x, y): while x
문제 링크 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 소스 코드 import sys input = sys.stdin.readline n = int(input().rstrip()) m = int(input().rstrip()) if m: broken = list(map(int,input().rstrip().split())) else: broken = [] gap = abs(n-100) # +,- 로만 이동할 경우 for nu..
문제 링크 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 소스 코드 import sys from collections import deque,Counter input = sys.stdin.readline t = int(input().rstrip()) for _ in range(t): function = list(input().rstrip()) function_count = Counter(function) # 개수 세기 leng = int(input().rstrip()) # 리스트 길이 nums = ..
문제 링크 https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 소스 코드 import sys from collections import deque input = sys.stdin.readline n,m = map(int,input().rstrip().split()) ladder = {} # 사다리 정보 for i in range(n): start,end = map(int,input().rstrip()...
문제 링크 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 소스 코드 import sys input = sys.stdin.readline n,m = map(int,input().rstrip().split()) graph = [list(map(int,input().rstrip().split())) for _ in range(n)] visited = [[False] * m for _ in range(n)] # 방문 리스트 초기화 maximum = ..