[백준_python] 동전 0 || 11047 (그리디 알고리즘)
·
🎯PS
11047번: 동전 0 (acmicpc.net) 11047번: 동전 0첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)www.acmicpc.net그리디 알고리즘(Greedy): 가장 최선의 선택을 하는 기법 처음에 최선의 선택을 한 것이 최후에도 가장 최선의 선택이길 바라는 알고리즘 따라서, 모든 경우에서 그리디 알고리즘이 통하는 것이 아니다.#동전 0 n, k = map(int, input().split(' ')) coin = [] for i in range(n): coin.append(int(in..
[프로그래머스_python] 완주하지 못한 선수 || 42576
·
🎯PS
코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 완주하지 못한 선수수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수programmers.co.kr#완주하지 못한 선수 from collections import Counter def solution(p, c): p = Counter(p) c = Counter(c) answer = '' for person, cnt in p.items(): if p[person] != c[person]: answer += person return answer #######..
[백준_python] 국영수 || 10825
·
🎯PS
10825번: 국영수 (acmicpc.net) 10825번: 국영수첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1www.acmicpc.net#국영수 n = int(input()) arr = [] for i in range(n): a, b, c, d = input().split() arr.append((a, int(b), int(c), int(d))) arr.sort(key = lambda x : (-x[1], x[2], -x[3], x[0])) #-는 내림차순 for i in arr: print(i[0])
[백준_python] 다리 놓기 || 1010
·
🎯PS
1010번: 다리 놓기 (acmicpc.net) 1010번: 다리 놓기입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.www.acmicpc.net원래 조합의 개수를 구할 때에는#조합의 개수 from itertools import combinations arr = [i for i in range(a)] result = list(combinations(arr, b)) print(len(result))이런식으로 모든 경우를 구하고 len으로 개수를 구해주겠지만, 더 간단하게 math모듈에 있는 comb()를 이용해주면 조합의 경우의 수를 구해줄 수 있다. 기억기억하기..
[백준_python] 그룹 단어 체커 || 1316
·
🎯PS
www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때www.acmicpc.net#그룹 단어 체커 n = int(input()) cnt = 0 for _ in range(n): s = list(input()) arr = [] no = 0 for i in range(len(s)): if s[i] in arr: if s[i-1] != s[i]: no += 1 break else: arr.append(s[i]) if no ==0: cnt += 1 print(cnt)기존..
[백준_python] 크로아티아 알파벳 || 2941
·
🎯PS
www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net아 기억난다 진짜 반례 엄청 찾아보면서 계속 값을 넣어봤었다. 정답이 잘 나오는 것 같아 보이지만, 다른 예시를 찾아다가 넣으면 값이 달라서 자꾸 헤맸었던 문제다.#크로아티아 알파벳 s = input() arr = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] #길이가 3개인 것도 있는 것에 주의하기 cnt = 0 n = 0 m = 3..
[백준_python] 한수 || 1065
·
🎯PS
www.acmicpc.net/problem/1065 1065번: 한수어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net#한수 n = int(input()) cnt = 0 if n
[백준_python] 요세푸스 문제 0 || 11866
·
🎯PS
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)www.acmicpc.net하.. 해주면서 안되면 조건 추가하고 조건 추가하고,,, 이렇게 해도 되는건가 싶은 그런 느낌이였다 ㅎㅎ.. for i in range(k): cnt += 1 if cnt == len(people): cnt = 0cnt(인덱스)를 k만큼 이동을 해주다가 list 인덱스를 벗어나게 되면, 맨 처음 인덱스로 가도록 하였다.cnt -= 1 if cnt < 0: cnt = len(people)-1 result.append(people[cnt]) people.pop(cnt)일단, list의 인덱스가 0부터 시..
[백준_python] 좌표 정렬하기 || 11650
·
🎯PS
www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.www.acmicpc.net# 좌표 정렬하기 n = int(input()) result = [] for _ in range(n): x, y = map(int, input().split(' ')) result.append((x, y)) result.sort(key=lambda x: (x[0], x[1])) for i in result: print(i[0], i[1])
[백준_python] 덱 || 10866
·
🎯PS
www.acmicpc.net/problem/10866 10866번: 덱첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net# 덱 import sys from collections import deque deq = deque() result = [] n = int(sys.stdin.readline()) for _ in range(n): cmd_input = sys.stdin.readline().strip().split(' ') cmd = cmd_input[0] if cmd == "push_front": deq.appen..