백준

https://www.acmicpc.net/problem/3190문제 풀이import Foundationlet n = Int(readLine()!)!let k = Int(readLine()!)!//0: 빈칸, 1: 사과, 2: 뱀var board = Array(repeating: Array(repeating: 0, count: n), count: n)for _ in 0..= n || ny >= n || board[nx][ny] == 2 { break } // 사과가 있다면: 머리만 늘리고 꼬리 안 줄임 if board[nx][ny] == 1 { board[nx][ny] = 2 snake.append((nx, ny)) } // 사과 없으면: ..
https://www.acmicpc.net/problem/17071문제 설계수빈이와 동생이 같은 위치에 있는 경우를 찾는다. 단, 동생은 계속 이동하므로 같은 시간에 같은 위치에 있어야 한다. 문제 풀이import sysfrom collections import dequeinput=sys.stdin.readline#동생 이동은 가속 붙음#위치도 같고 시간도 같아야함n, k = map(int, input().split())visited = [[False]*2 for _ in range(500001)] q=deque()#위치, 시간q.append((n,0))visited[n][0]=Truetime=0safe=Falsewhile True: sister=k+time*(time+1)//2 ..
https://www.acmicpc.net/problem/5525문제 설계문자열 슬라이싱을 진행하면서 IOI와 일치하는지 확인한다.일치한다면 슬라이싱 시작점을 +2 해준 후 IOI가 나온 수를 관리하는 변수에 +1 해준다.그리고 n과 비교해준 후 결과에 +1을 한다.일치하지 않는 경우 그냥 시작점을 +1 해준 후 관리하는 변수를 0으로 해준다. 문제 풀이import sysinput=sys.stdin.readlinen=int(input().strip())m=int(input().strip())s=input().strip()res=0i=0tmp=0while i
https://www.acmicpc.net/problem/9935문제 설계입력 받은 문자열을 하나씩 stack에 넣어준다. 넣을 때 마다 stack에 담긴 문자열 중에 폭발이 일어나는 문자열이 있는지 확인한다.있다면 폭발 문자열 길이 만큼 stack.pop을 해준다. 문제 풀이string=input()exp=input()n=len(exp)stack=[]for s in string: stack.append(s) if ''.join(stack[-n:]) == exp: for _ in range(n): stack.pop()if stack: print(''.join(stack))else: print('FRULA') 정리arr=[]일 때, print(''.jo..
https://www.acmicpc.net/problem/8979문제 설계입력 받은 값을 배열에 넣고 정렬한다.제일 앞에 있는 것을 1등으로 정한 후 1등의 메달 수들을 임시로 저장해 놓는다.제일 앞에 있는 것을 1등으로 했으므로 1부터n-1까지 반복문을 수행한다.직전 국가와 비교해서 메달 별로 개수가 같으면 같은 등수로 기록한다.다르다면 등수를 1 더하고 등수를 기록한 후 현재의 메달 수들을 임시로 저장해 놓는다.문제 풀이n,k=map(int,input().split())countries=[]for _ in range(n): data=list(map(int,input().split())) countries.append(data)countries.sort(key=lambda x:(-x[1],-..
https://www.acmicpc.net/problem/2503문제 풀이from itertools import permutationsn=int(input())q=[]for _ in range(n): num,s,b=input().split() q.append((num,int(s),int(b)))cnt=0can=list(permutations(range(1,10),3))for c in can: c_str=''.join(map(str,c)) safe=True for q_num,q_s,q_b in q: strike=0 ball=0 for i in range(3): if c_str[i]==q_num[i]: ..
https://www.acmicpc.net/problem/11967문제 설계graph 배열을 이용해서 각 방에서 킬 수 있는 방의 위치를 저장방문과 불 여부를 확인하기 위해 배열 생성 bfs를 수행1. 그 방에서 불키고 바로 이동 가능한 경우2. 그 방에서 불켰으나 인접하지 않아서 나중에 확인해야 하는 경우문제 풀이import sysfrom collections import dequeinput=sys.stdin.readlineN,M=map(int,input().split())graph=[[[] for _ in range(N)] for _ in range(N)]for _ in range(M): x,y,a,b=map(int,input().split()) graph[x-1][y-1].append((..
https://www.acmicpc.net/problem/12904문제 설계S를 T로 만드는 것이 아니라, T를 S로 만드는 것을 구현한다.어떤 연산을 해야할지, 몇 번 연산을 해야할지 이게 유리하다. 문제 풀이import sysfrom collections import dequeinput = sys.stdin.readlineS=input().strip()T=input().strip()while len(T) > len(S): if T[-1] == 'A': T = T[:-1] elif T[-1] == 'B': T = T[:-1][::-1]print(1 if T == S else 0) 정리✅ 1. T[::-1] → 문자열 뒤집기문자열의 순서를 거꾸로 뒤집는 슬라이싱T = ..
SON!
'백준' 태그의 글 목록