본문 바로가기

Algorithm/Programmers21

[Programmers / Level2] 뒤에 있는 큰 수 찾기 + 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 결론부터 말하자면, 스텍인덱스를 활용해서 푸는 문제이다. 아래와 같이 제한사항이 걸려있는 상황이다. 제한사항 4 ≤ numbers의 길이 ≤ 1,000,000 제한사항에 따르면 1000000번 + @의 연산을 한다. 따라서 아래와 같이 포문 두번 돌리는 O(N**2)연산을 하면 실패한다.. - 오답코드 def solution(numbers): total_numbers = len(numbers) .. 2024. 3. 4.
[Programmers / Level2] 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque dxs = [0, 1, -1, 0] dys = [1, 0, 0, -1] def is_valid(nx, ny, N, M, maps): return 0 2024. 3. 1.
[Programmers / Level2] 모음 사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보자마자 순열조합을 사용해야겠다고 생각했다. product(곱연산)을 사용해서 리스트에 정의시켜주고, 해당되는 값을 찾기위해 index 메소드를 사용하면 풀 수 있겠다고 생각했다. - .extend() 메소드를 사용 from itertools import product def solution(word): words = [] vowels = 'AEIOU' for i in range(1, 6).. 2024. 2. 29.
[Programmers / Level3] 야근지수 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 오답 시간복잡도 고려를 하지않고, 단순히 역순정렬을 하고 가장 큰 숫자부터 선형적으로 숫자를 뺄셈해주는식으로 해버렸다. def solution(n, works): sorted_works = sorted(works, reverse=True) for i in range(n): sorted_works[i % len(works)] -= 1 for i in range(len(sorted_works)):.. 2024. 2. 28.
[Programmers / Level2] 캐시 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(cacheSize, cities): if cacheSize == 0: return len(cities) * 5 cache = [] time = 0 for city in cities: city = city.lower() if city in cache: cache.remove(city) cache.append(city) time += 1 else: time += 5 if len.. 2024. 1. 30.
[Programmers / Level2] 의상 코딩테스트 연습 - 의상 | 프로그래머스 스쿨 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(clothes): cloth = {} for stuff, wear in clothes: if wear in cloth: cloth[wear] += 1 else: cloth[wear] = 1 result = 1 for count in cloth.values(): result *= (count + 1) return result - 1 해시를 이용한 조합문제이다. 조합을 구하는 센스가 필요했다. Counter 클래스 또는 for문을 통해 일단 딕.. 2024. 1. 29.
반응형