본문 바로가기

파이썬20

의상 (파이썬) https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdictionary를 이용해서 푸는 문제 def solution(clothes): answer = 1 dict = {} clen = len(clothes) for i in range(clen): if clothes[i][1] in dict: dict[clothes[i][1]] += 1 else: dict[clothes.. 2024. 10. 15.
연속 부분 수열 합의 개수 (파이썬) https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 첫 접근 방법## 시간초과 코드def solution(elements): lst = [] elen = len(elements) elements += elements for i in range(elen): for j in range(elen): tmp = 0 for k in range(i, j + i + 1): .. 2024. 10. 15.
백준 2108 통계학 (파이썬) https://www.acmicpc.net/problem/2108 문제핵심1. 산술평균, 중앙값 최빈값, 범위 총 4가지 값을 구해야 한다.2. 최빈값을 구하는 방법을 잘 고려할 것(저는 dict를 사용했습니다) 풀이n = int(input())nums = []for i in range(n): nums.append(int(input()))#1.meanmean = round(sum(nums)/n)print(mean)#2.mediannums.sort()median = nums[n//2]print(median)#3.modedic = dict()for i in nums: if i in dic: dic[i] += 1 else: dic[i] = 1maxinum_mode_va.. 2024. 9. 23.
프로그래머스 귤 고르기 (파이썬) https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근법 #1 ### 풀이 1 dict 사용, ## 핵심 key ## a = dict(sorted(a.items(), key = lambda x:x[1], reverse = True))def solution(k, tangerine): answer = 0 dic = {} for i in tangerine: if i in dic: dic[i] += 1 .. 2024. 9. 4.
백준 20920 영단어 암기는 어려워 파이썬 https://www.acmicpc.net/problem/20920  문제핵심단어를 여러 개 입력받은 후 3가지 조건으로 정렬을 하면 되는 문제이다.1. 단어의 빈도수2. 단어의 길이3. 단어의 알파벳 사전순서 문제에서 다중조건의 정렬이 있다면 dictionary와 lambda를 이용해서 풀면 효과적이라는 것을 생각하자! 코드import sysinput = sys.stdin.readlineN, M = map(int, input().split())d = {}for _ in range(N): word = input().rstrip() if len(word)  여기서 x[1]은 dic에서 value인 단어빈도수이며, x[0]은 key인 단어 그 자체이다.따라서-x[1] : 단어 빈도수 순서 .. 2024. 8. 26.
백준 23971 ZOAC 4 파이썬 https://www.acmicpc.net/problem/23971 문제 풀이 (10분 소요)h,w,n,m = list(map(int,input().split()))c = (h+n)//(n+1)r = (w+m)//(m+1)print(c*r) 세로, 가로 줄은 서로 관계가 없기에 가로, 세로 각각 구해준 후 두 값을 곱해주는 방식으로 풀었다 풀이가 명확하면 매우 쉽지만 그렇지 않다면 조금 고민을 할 수도 있는 문제라고 생각한다 2024. 8. 26.
백준 10815 파이썬 (이진탐색, Binary Search) https://www.acmicpc.net/problem/10815 python의 in을 이용하여 풀려고 하면 시간초과가 나는 문제입니다. 문제에서 입력값이 "-10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다"라고 되어있기 때문에 이렇게 큰 수가 포함된 배열 문제는 이진탐색을 이용하면 좋습니다. 매 단계마다 범위를 절반으로 줄이기 때문입니다. 개념이진탐색(Binary Search)은 정렬된 배열이나 리스트에서 원하는 값을 효율적으로 찾는 알고리즘입니다. 이진탐색은 다음과 같은 방식으로 작동합니다:초기 설정: 배열의 시작 인덱스(left)와 끝 인덱스(right)를 설정합니다. 일반적으로 left는 0, right는 배열의 마지막 인덱스입니다.중간값 계산: 중간 인덱스(mid)를 .. 2024. 6. 14.
백준 2805 파이썬 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 처음 구현한 방법 : 시간 초과가 날걸 알면서도 다른 방법이 생각나지 않아 일단 코드를 작성하고 제출했다. 예제 코드는 돌아가지만 제출을 하니 역시 시간초과가 발생했다. n, m = map(int, input().split()) h = list(map(int,input().split())) maxchecker = max(h) - 1 minchekcer = m.. 2023. 12. 21.
백준 6603 파이썬 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net def dfs(start, depth): if depth == 6: for i in range(6): print(answer[i], end=' ') print() return for i in range(start, len(S)): answer[depth] = S[i] dfs(i + 1, depth + 1) answer = [0 for i in range(13)] while 1: S = .. 2023. 2. 6.