전체 글 270

[프로그래머스] 옹알이 (1) 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(babbling): result = 0 for i in babbling: cnt = 0 word = '' for j in i: word += j if word in ['aya', 'ye', 'woo', 'ma']: word = '' cnt += 1 if len(word) == 0 and cnt > 0: result += 1 return result Review 문..

프로그래머스 2023.02.01

[프로그래머스] 두 큐 합 같게 만들기 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 from collections import deque def solution(queue1, queue2): cnt = 0 q1 = deque(queue1) q2 = deque(queue2) q1_sum = sum(q1) q2_sum = sum(q2) for _ in range(int(len(q1)*3)): if q1_sum > q2_sum: q1_sum -= q1[0] q2_sum +=..

프로그래머스 2023.01.30

백준 25305번 커트라인 파이썬

https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N, K = map(int, input().split()) score = sorted(list(map(int, input().split()))) print(score[N-K]) Review 이 문제는 구현과, 정렬 보다는 N, K = map(int, input().split()) score = sorted(list(map(int, input().split()))) 입력을 어떤 식으로 받는지가..

BOJ/Python 2023.01.19

백준 10814번 나이순 정렬 파이썬

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline N = int(input()) member = [] for i in range(N): x, y = input().split() member.append([int(x), y, i]) result = sorted(member, key = lambda x: (x[0], x[2])) for i in range(N): print(res..

BOJ/Python 2023.01.18

[프로그래머스] 테이블 해시 함수 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 def solution(data, col, row_begin, row_end): answer = 0 # col-1 번째 값으로 오름차순, 동일할시 첫번째 컬럼의 값을 기준으로 내림차순 d = sorted(data, key = lambda x:(x[col-1], -x[0])) # 정렬된 데이터에서 S_i 를 i번째 행의 튜플에 대해 각 컬럼의 값을 i로 나눈 나머지들의 합으로 정의 for..

프로그래머스 2022.12.27

백준 1316번 그룹 단어 체커 파이썬

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 내 답안 N = int(input()) check = 0 for i in range(N): x = input() group = [x[0]] for j in range(1, len(x)): if group[-1] != x[j]: group.append(x[j]) if len(set(group)) == len(group): check += 1 print(check) R..

BOJ/Python 2022.12.04

백준 5585번 거스름돈 파이썬

https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 내 답안 en = [500, 100, 50, 10, 5, 1] cnt = 0 x = 1000 - int(input()) for i in en: cnt += (x // i) x %= i print(cnt) Review 그리디 알고리즘의 매우 간단한 대표적인 문제이다. 코드가 이해 안된다면 아래 글을 참고 하자. https://thingjin.tistory.com/entry/%E..

BOJ/Python 2022.12.03

백준 1541번 잃어버린 괄호 파이썬

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 내 답안 x = input().rstrip().split('-') result = [sum(map(int, i.split('+'))) for i in x] print(result[0] - sum(result[1:])) REVIEW 문제를 보면서 어떻게 하면 잘 계산을 할 수 있을까 고민을 하였다. 내가 생각한 순서는 이렇다. 1번 "-" 단위로 끊어서 리스트를 만든다. -> ["55", "5..

BOJ/Python 2022.12.02

백준 2193번 이친수 파이썬

https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline dp = [0] * 91 dp[0] = dp[1] = 1 N = int(input()) if N < 3: print(dp[N-1]) else: for i in range(N-2): dp[i+2] = dp[i+1] + dp[i] print(dp[N-1]) REVIEW 6자릿수까지 노가다 했는데, 결론은 규칙이 있..

BOJ/Python 2022.09.20

백준 9461번 파도반 수열 파이썬

https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline dp = [0] * 101 dp[0] = dp[1] = dp[2] = 1 for i in range(int(input())): n = int(input()) if n < 3: print(dp[n]) else: for i in range(n-2): dp[i+3] = dp[i] + dp[i+1] print(dp[n-1]) REVI..

BOJ/Python 2022.09.19
반응형
목차(index)