반응형 구현35 [BOJ][Python]2491번 풀이 https://www.acmicpc.net/problem/2491 2491번: 수열 0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾 www.acmicpc.net n = int(input()) num = list(map(int, input().split())) inc = 1 dec = 1 tmp = 1 for i in range(len(num)-1): if num[i] = num[i+1]: tmp += 1 else: dec = max(dec, tmp) tmp = 1 dec = max(dec, tmp) print(max(inc, dec)) 어렵진 않았는데 재밌다.. 2022. 7. 11. [BOJ][Python]1783번 풀이 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net n,m = map(int, input().split()) if n >= 3: if m >= 7: print(m-2) elif m >= 4: print(4) else: print(m) elif n == 2: if m >= 7: print(4) else: print(1+(m-1)//2) else: print(1) 이번에는 구현 문제인데요. 느낌이 그리디랑 비슷한 문제입니다. 뭔가 수학적인 계산을 하는 문제라기 보다는 논리적 추론에 가까운 문제가 아닌가 생각합니다. .. 2022. 7. 10. [BOJ][Python]5430번 풀이 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline t = int(ssr()) for _ in range(t): p = ssr().rstrip() n = int(ssr()) state = 1 if n == 0: num = ssr().rstrip() num = deque([]) else: num = ssr().rstrip() num = deque(num[1:-1].split(',')) fo.. 2022. 7. 9. [BOJ][Python]2578번 풀이 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net import sys ssr = sys.stdin.readline def sol(): for i in range(5): for j in range(5): for k in range(5): for l in range(5): if t[k][l] == n[i][j]: check[k] += 1 check[l+5] += 1 if k+l == 4: check[11] += 1 if k==l: check[10] += 1 if .. 2022. 7. 7. [BOJ][Python]6064번 풀이 https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net t = int(input()) for _ in range(t): m,n,x,y = map(int, input().split()) a,b = 0,0 ans = 0 for i in range(m+abs(m-n)): if (i*m+x-1)%n == y-1: ans = i*m+x break if ans == 0: print(-1) else: print(ans) 오늘은 열대야 때문에 잠을 계속 설치다가 그냥 .. 2022. 7. 6. [BOJ][Python]5525번 풀이 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 def check(): global state, start cnt = 0 while start < m: if state == 1: if s[start] == 'I': state = 0 start += 1 cnt += 1 else: start += 1 return cnt else: if s[start] == 'O': state = .. 2022. 7. 5. [BOJ][Python]2331번 풀이 https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net a,p = input().split() n = [a] num = {i:0 for i in range(1,236197)} num[int(a)] = 1 tmp = 0 while 1: c = n[-1] for i in c: tmp += int(i)**int(p) n.append(str(tmp)) if num[tmp] == 1: print(len(n[:n.index(str(tmp))])) break else: num[tmp] += 1 tmp = 0 #236,196 : max 확실히 구현은 많이 풀고 시간 투자를 많.. 2022. 7. 1. [BOJ][Python]14720번 풀이 https://www.acmicpc.net/problem/14720 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후 www.acmicpc.net n = int(input()) m = list(map(int, input().split())) state = 0 ans = 0 for i in m: if i == state: ans += 1 state += 1 if state == 3: state = 0 print(ans) 그렇게 어려운 문제는 아니구요. 다만 왜 그리디인지 잘은 모르겠네요. 문제 접근은 state라는 변수를 만들어서 현재 먹어야 하.. 2022. 6. 30. [BOJ][Python]1051번 풀이 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 개인적으로 해당 문제의 설명이 너무 별로라고 생각해서 제 나름대로 이해가 쉽도록 좀 고쳐보겠습니다. 문제: 1x1 크기의 칸이 세로N개, 가로M개의 형태로 나열되어 하나의 직사각형을 이루고 있으며, 각 칸에는 한 자리 숫자가 적혀 있다. 어떤 정사각형의 꼭짓점이 NxM 직사각형 내부의 숫자가 적혀있는 칸 위에 위치한다고 가정할 때, 꼭짓점이 위치한 칸에 쓰여 있는 수가 모두 같고 넓이가 가장 큰 .. 2022. 6. 29. [BOJ][Python]1120번 풀이 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net a,b = input().split() ans = 50 for i in range(len(b)-len(a)+1): tmp = 0 for j in range(len(a)): if a[j] != b[i+j]: tmp += 1 if tmp < ans: ans = tmp print(ans) 크게 어려운 문제는 아니지만 구현 문제 특성상 길을 잘못 잡으면 시간 지체가.. 2022. 6. 28. 이전 1 2 3 4 다음 반응형