[프로그래머스_python] 전화번호 목록 || 42577
·
🎯PS
programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조programmers.co.kr진짜로............해시를 어떻게 이용해주어야 하는 건지,,,,,, 접두사만 어떻게 비교해주어야 하는건지......... ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ여러번 시도를 해주었었다. 결국에는 해시를 이용해주지 않고 문제를 풀어주었었는데, 접두사만 비교할 수 있는 함수가 따로 있었던 게 기억이 났다.. 시도를 안해주었었지만,, 오늘 해주었다! def solution(pb): #?실패한..
[백준_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])