파이썬알고리즘79 의상 (파이썬) 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. 백준 2470 두 용액 (파이썬) https://www.acmicpc.net/problem/2470 문제핵심1. 음수 양수 상관없이 가까운 값을 찾는 것이기 때문에 절댓값을 이용해야겠다는 아이디어2. 정렬 후 왼쪽 끝과 오른쪽 끝을 정해두고 while left 팁1. 2e+9는 2 x 10^9를 나타낸다2. answer = [1, 2]와 같이 list로 되어있는 경우 *answer처럼 앞에 *(Asterisk)를 붙이면 괄호 안 내용은 1, 2로 출력된다. 풀이n = int(input())water = list(map(int, input().split()))water.sort() left = 0right = n - 1min_sum = 2e+9+1answer = [0, 0]while left 2024. 8. 28. 백준 1931 회의실 배정 (파이썬) https://www.acmicpc.net/problem/1931 문제핵심 아래 두 조건을 모두 만족시키는 정렬이 필요하다.1. 끝나는 시간으로 오름차순 (끝나는 시간이 짧을수록 회의를 많이 할 수 있기 때문에)2. 시작하는 시간으로 오름차순 코드n = int(input())meet = []for _ in range(n): start, end = map(int, input().split()) meet.append((start, end))meet.sort(key=lambda x: (x[1], x[0]))time = 0count = 0for i in meet: if time 어제 https://zhocoding.tistory.com/161 여기서 사용했던 lambda를 이용한 정렬을 해주면.. 2024. 8. 27. 백준 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. 이전 1 2 3 4 ··· 9 다음