파이썬

    [백준 파이썬] # 10814 나이순 정렬

    Silver V # 10814 나이순 정렬 링크 : https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 N = int(input()) li = [] for i in range(N): a, b = input().split() li.append([a, b]) li = sorted(li, key = lambda a: int(a[0])) # point! for i in li: print(i[0], i[1]) 후기 lambda를 이용해 정의할 때 숫자 기준..

    [백준 파이썬] # 15649 N과 M (2)

    Silver III # 15649 N과 M (2) 링크 : https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 N, M = map(int, input().split()) def dfs(start, seq): if len(seq) == M: print(' '.join(list(map(str, seq)))) return for i in range(start, N+1): if i not in seq: seq.append(i) dfs(i+1, se..

    [백준 파이썬] # 15651 N과 M (4)

    Silver III # 15651 N과 M (4) 링크 : https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 N, M = map(int, input().split()) def dfs(start, seq): if len(seq) == M: print(' '.join(list(map(str, seq)))) return for i in range(start, N+1): seq.append(i) dfs(i, seq) seq.pop() dfs(1,..

    [백준 파이썬] # 15651 N과 M (3)

    Silver III # 15651 N과 M (3) 링크 : https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 N, M = map(int, input().split()) def dfs(depth, seq): if depth == M: print(' '.join(list(map(str, seq)))) return for i in range(1, N+1): seq.append(i) dfs(depth+1, seq) seq.pop() dfs(0, ..

    [백준 파이썬] # 15649 N과 M (1)

    Silver III # 15649 N과 M (1) 링크 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 N, M = map(int, input().split()) def dfs(depth, seq): if depth == M: print(' '.join(list(map(str, seq)))) for i in range(1, N+1): if i not in seq: temp = seq.copy() temp.append(i) dfs(de..

    [백준 파이썬] # 10809 알파벳 찾기

    Bronze II # 10809 알파벳 찾기 링크 : https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 S = list(input()) alphabet = list('abcdefghijklmnopqrstuvwxyz') li = [] for i in alphabet: if i in S: li.append(S.index(i)) else: li.append(-1) print(*li) 풀이 방법 alphabet을 정의한다 S에서 alp..

    [백준 파이썬] # 2675 문자열 반복

    Bronze II # 2675 문자열 반복 링크 : https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 풀이 T = int(input()) for i in range(T): R, S = input().split() P = '' for j in S: P += j*int(R) print(P) 풀이 방법 문자열 P를 이용한다. P에 문자를 추가하기 위해서 '+='를 이용한다. 후기 문자열로 받아 사용하면, 리스트에 append 후 프린트 하는 ..

    [백준 파이썬] # 7562 나이트의 이동

    Silver II # 7562 나이트의 이동 링크 : https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 풀이 from collections import deque def bfs(x, y): if (loc_x, loc_y) == (des_x, des_y): return 0 else: q = deque() q.append((x, y)) dx = [1, 2, 2, 1, -1, -2, -2, -1] dy = [2, 1, -1, -2, -2, -1, 1, ..

    [백준 파이썬] # 1697 숨바꼭질

    Silver I # 1697 숨바꼭질 링크 : https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 from collections import deque def bfs(n, k): q = deque([n]) while q: pop = q.popleft() if pop == k: return visited[pop] for i in [pop-1, pop+1, 2*pop]: if 0

    [백준 파이썬] # 1158 요세푸스 문제

    Silver V # 1158 요세푸스 문제 링크 : https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 from collections import deque N, K = map(int, input().split()) queue = deque(list(range(1, N+1))) li = [] while queue: for i in range(K-1): pop = queue.popleft() queue.append(pop) insert = queue.popleft() li.append(insert) li = str(li).replace..