Coding Test Practice/Python 35

[백준 - Silver 4] 2164번: 카드2

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net # 백준 2164번: 카드2 (Silver 4) # https://www.acmicpc.net/problem/2164 from collections import deque cards = deque([i + 1 for i in range(int(input()))]) # 리스트 사용 시 시간 초과 while len(cards) > 1: cards.popleft() # list의 pop()은 시간 복잡..

[백준 - Silver 4] 1920번: 수 찾기

https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net N = int(input()) A = set(map(int, input().split())) M = int(input()) B = list(map(int, input().split())) for b in B: if b in A: print(1) else: print(0) 실버 4 문제 치고 매우 쉬운 편이다. A를 입력 받을 때부터 set으로 저장해..

[백준 - Bronze 1] 1259번: 팰린드롬수

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net while True: n = input() if n == '0': break mid = len(n) // 2 if len(n) == 1 or n[:mid] == n[::-1][:mid]: print("yes") else: print("no")

[백준 - Silver 5] 1181번: 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net from collections import defaultdict n = int(input()) words = [input() for _ in range(n)] words = list(set(words)) # 중복 제거 size_cnt = defaultdict(list) for w in words: size_cnt[len(w)].append(w) answer = [] for item in..

[백준 - Bronze 3] 1085번: 직사각형에서 탈출

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net x, y, w, h = map(int, input().split()) print(min(w-x, h-y, x, y))

[백준 - Silver 4] 1018번: 체스판 다시 칠하기

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 아이디어 정답 board를 생성한다. W로 시작하는 board, B로 시작하는 board => 총 2개 입력 받은 board에서 만들 수 있는 모든 8 * 8 board의 case마다, 정답 board와 다른 문자의 개수(즉 다시 색을 칠해야 하는 칸의 개수)를 세어 가장 적은 count를 정답으로 출력 n, m = map(int, input().split()) board = [input(..

[LeetCode - Easy] 1025. Divisor Game

https://leetcode.com/problems/divisor-game/ Divisor Game - LeetCode Can you solve this real interview question? Divisor Game - Alice and Bob take turns playing a game, with Alice starting first. Initially, there is a number n on the chalkboard. On each player's turn, that player makes a move consisting of: * Choosing any x leetcode.com 게임을 이해하여 n이 짝수이면 무조건 Alice가, 홀수이면 Bob이 이긴다는 규칙을 찾아내 간단히 해결 가..

[프로그래머스 코딩테스트 연습 - 스택/큐 Lv. 2] 프린터

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(priorities, location): answer = 0 p_deq = deque(priorities) idx_deq = deque(range(len(p_deq))) # 원래 인덱스 while len(p_deq) > 0: first = p_deq.popleft() idx = idx_deq.popleft() if len..

[프로그래머스 코딩테스트 연습 - 스택/큐 Lv. 2] 주식가격

https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(prices): answer = [0] * len(prices) # 자기 자신보다 작은 수가 나오는 순간(위치)을 찾아야 함 # 해당 위치의 인덱스 - 자기 자신의 인덱스 = 가격이 떨어지지 않은 기간 (초) # 다만, 자기 자신보다 작은 수가 나오는 순간이 없었다면 끝까지 가격이 떨어지지 않은 것이므로 최대 길이 계산 # 자기 자신 (고정 인덱스) = i, 계속 움직이는 ..