본문 바로가기

Algorithm

(109)
[고득점 Kit / 스택&큐] 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제의 해결과정은 다음과 같다. 1. progresses와 speeds 값을 참고하여 각각의 기능이 구현되는 기간을 담는 리스트 days를 구한다.이는 간단한 방정식과 올림을 사용하여 구현 가능하다.  (아래의 코드 참고) 2. 배포기준을 잡고, 배포그룹별 몇 개의 기능이 포함되어 있는지 확인한다. import mathdef solution(progresses, speeds): days = ..
[고득점 Kit / 스택&큐] 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 스택에 대한 이해가 필요하다. 스택에 대해 잘 모르겠다면 필자의 다음의 글을 참고하자.https://vegetableworld.tistory.com/222 [Python] 스택스택은 가장 나중에 들어온 자료가 가장 먼저 빠져나가는 LIFO(Last-In-First-Out) 자료구조이다. 아래의 그림을 참고하면 이해하기 편하다.  그렇다면 파이썬에서는 스택을 어떻게 구현할까? 사실vegeta..
[Python] 리스트 거꾸로 뒤집기 1. reverse 메소드 사용test = [1, 2, 3, 4, 5]test.reverse()print(test)# [5, 4, 3, 2, 1] 2. reversed 메소드 사용test = [1, 2, 3, 4, 5]print(list(reversed(test)))# [5, 4, 3, 2, 1] list에 적합한 메소드가 아니다. 따라서 사용하는거 비추함
[Python] 스택 스택은 가장 나중에 들어온 자료가 가장 먼저 빠져나가는 LIFO(Last-In-First-Out) 자료구조이다. 아래의 그림을 참고하면 이해하기 편하다.  그렇다면 파이썬에서는 스택을 어떻게 구현할까? 사실 따로 구현할 필요가 없다. 우리가 평소에 사용하는 list가 그 자체로 스택으로 쓰일 수 있기 때문이다.사용 방법을 알아보자. Stack - init# 빈 스택으로 초기화stack = [] Stack - push# 스택에 원소 추가stack = [1, 2, 3, 4, 5]stack.append(6)# [1, 2, 3, 4, 5, 6]  Stack - pop# 스택의 원소 제거stack = [1, 2, 3, 4, 5]top = stack.pop()print(top)print(stack)# 3# [1, ..
[고득점 Kit / 해시] 의상 (Counter, 리스트 컴프리헨션) https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 수학적으로 답이 나오는 과정을 이해해야 한다. 테스트케이스를 보자.  clothes return [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]] 5 [["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "fac..
[고득점 Kit / 해시] 전화번호 목록 (find, startswith, endswith) https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에는 이렇게 풀었다. 1. 리스트 문자열을 정렬 (아래와 같이) ["12","888","567","1235","123"] -> ['12', '123', '1235', '567', '888'] 2. 인접한 문자열끼리 비교하여 앞 문자열이 뒷 문자열에 포함되어있는가를 확인def solution(phone_book): phone_book.sort() for i in range(len(phon..
[고득점 Kit / 해시] 완주하지 못한 선수 (해시맵) https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 해시맵을 사용하면 효율적으로 풀 수 있다. 파이썬에서는 해시맵을 딕셔너리라는 이름으로 제공하고 있다.https://vegetableworld.tistory.com/48 [Python] 딕셔너리딕셔너리란 무엇인가? 사람은 누구든지 "이름" = "홍길동", "생일" = "몇 월 며칠" 등으로 나타낼 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다. 요즘 ..
[고득점 Kit / 해시] 폰켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해시를 쓰는 문제라 해서 해시를 공부하는 겸 풀어보려 했는데.. 해시를 전혀 사용하지 않아도 풀리는 문제였다. 테스트케이스를 이용해 답이 나오는 과정을 생각해보자. nums = [3, 1, 2, 3]norep = [1, 2, 3]n = 2 (선택가능한 폰켓몬 수)result = 2 중복을 제거한 리스트인 norep의 리스트의 크기와 n을 비교했을 때, 작거나 같은 쪽이 그냥 답이 된다..진짜 그럴까? ..