백준

· 백준
🥈 Silver2https://www.acmicpc.net/problem/1654   ✅ 정답풀이import sysinput=sys.stdin.readlinen,k=map(int,input().split())lines=[int(input()) for _ in range(n)]answer=1left=1right=2**31-1#binary Searchwhile left=k: #오른쪽 보기 answer=mid left=mid+1 else: right=mid-1print(answer)메모리실행시간31120KB88ms 이분탐색의 국룰 mid 찾고, target값의 크기 비교로 인해 left, right값 업데이트 해주기하지만 처음에 count(막대 개수)==k(..
· 백준
🥈 Silver5https://www.acmicpc.net/problem/1181  ✅ 1번 풀이 : setfrom collections import defaultdictn=int(input())# 중복 제거를 위해 setwords=defaultdict(set)for _ in range(n): word=input() words[len(word)].add(word)keys=list(words.keys())keys.sort()for key in keys: word_list=list(words[key]) word_list.sort() for w in word_list: print(w)메모리실행시간34424KB868ms  ✅ 2번 풀이: dictionayfrom coll..
· 백준
🥈 Silver3https://www.acmicpc.net/problem/1021    ✅ 정답풀이import sysfrom collections import dequeinput = sys.stdin.readlinen, m = map(int, input().split())num_list = list(map(int, input().split()))# 2번과 3번 중 어느 방법을 결정할지-> 중간 인덱스를 기준으로 해당 index가 가까운쪽으로q = deque([i for i in range(1, n + 1)])result = 0for num in num_list: while True: # 맨앞 요소가 빠져나갈수있는지 확인 if q[0] == num: q...
· 백준
🥈 Silver3https://www.acmicpc.net/problem/1966  ✅ 정답풀이# 인쇄=맨앞요소 제거시, # list(stack)는 pop(0)=O(n)# Queue는 popleft()=O(1) -> Queue 사용# 첫번째 요소가 queue에서 max값이여야 출력이 가능import sysfrom collections import dequeinput=sys.stdin.readlinen=int(input())find=Falsefor _ in range(n): q=deque() #queue 생성 n,target=map(int,input().split()) priority=list(map(int,input().split())) for idx,p in enume..
· 백준
🥈 Silver3https://www.acmicpc.net/problem/2346    ✅ 정답풀이import sysfrom collections import dequeinput=sys.stdin.readlinen=int(input())notes=list(map(int,input().strip().split()))#deck 생성 (풍선 번호,note)deck=deque((i+1,note) for i,note in enumerate(notes))result=[]#터트릴 풍선을 맨앞으로 보내고 터뜨리기for _ in range(n): #초기값=1번 풍선 ballon,dx=deck.popleft() #풍선번호,이동값 result.append(ballon) #result=[1,4,5,3,2] ..
· 백준
🥈Silver1https://www.acmicpc.net/problem/2615  ✅ 정답풀이import sysboard = [list(map(int, sys.stdin.readline().split())) for _ in range(19)]# → ↓ ↘ ↗move= [[1,0],[1,1],[0,1],[-1,1]]N = 19result = 0for i in range(N): for j in range(N): if board[i][j] != 0: # 돌이 있는 칸이면 stone = board[i][j] for dy, dx in move: ny, nx, cnt = i + dy, j + dx, 1 ..
· 백준
🥈 Silver4  ✅ 정답풀이import sysinput=sys.stdin.readlinen=int(input())status=list(map(int,input().split()))#print(status) #[0, 1, 0, 1, 0, 0, 0, 1]x=int(input())#print(x)# 학생 스위치 조작for _ in range(x): gender,num=map(int,input().split()) #print(gender,num) #남학생=배수 if gender==1: for i in range(1,n//num+1): idx=i*num-1 #toggle status[idx]=1 if status[i..
· 백준
https://www.acmicpc.net/problem/1018 🥈 Silver 4 : 체스판 다시 칠하기   ✅ 정답 풀이import sysinput = sys.stdin.readlinen, m = map(int, input().split())# 보드 읽기board = []for _ in range(n): board.append(input().rstrip())result = []# 가능한 보드 순회for i in range(n - 7): for j in range(m - 7): w_board = 0 b_board = 0 #8x8로 자르기 for y in range(i, i + 8): for x in range(j, ..
Yuuuki
'백준' 카테고리의 글 목록 (3 Page)