프로그래머스 44

[프로그래머스] level3 등굣길 파이썬

풀이시간 : 30분 체감 난이도: level2 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 주의 - puddles 가 컴퓨터 index 접근인 [1,1]이 아니라 [2,2]로 되어있다. 시작 위치도 [1,1]이다. ※ 접근법 1. 동적 프로그래밍 -> 최단거리를 구하는 것도 아니고, 갈 수 있는 경로를 모두 구하는 것. 2. 동서남북을 확인하여 지금까지 왔던 값을 모두 더해주면 내가 현재 지점까지 올 수 있는 모든 경우의 수가 된다. 3..

Python/CoTe 2024.03.05

[프로그래머스] level3 - 야근지수 파이썬 풀이

풀이 시간 : 15분 level3 맞나,,,? https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심 최대 일들 부터 처리해줘야 제곱의 합이 작아진다. 접근법 1. 정렬 (문제는 맞으나 매번 for 문마다 정렬하면 효율성이 떨어진다) 2. heap (자동으로 정렬되는 heap 이용) heap 이용한 풀이 import heapq def solution(n, works): heap = [] #최대 힙으로 만든다 for work in works: he..

Python/CoTe 2024.03.05

PCCP 모의고사 1회 - 외톨이 알파벳 (파이썬 풀이)

프로그래머스 PCCP 모의고사 1회 - 외톨이 알파벳 파이썬 풀이 https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명은 복잡하게 되어있지만 (처음 설명대로 접근하면 오히려 코드가 복잡해지고 접근법이 오히려 이상) 결국 2회 이상 나온 알파벳 중에 붙어 있지 않으면 모두 외톨이 알파벳이다. ※ 핵심 총 2회 이상 등장한 알파벳은 등장횟수만큼 모두 붙어있어야만 한다. 접근법 1. 지금까지 나온 모든 알파벳의 최대 등장 횟수만 알면된다. →..

Python/CoTe 2024.02.14

[프로그래머스] [3차] 방금그곡 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/17683# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 쉬웠던 문제. 풀이 : 30분 ※ 접근법 1. 우선 C#, D#, F#, G#, A# 을 하나의 문자로 보기 위해 사용하지 않는 문자열로 치환해준다, 예시) dict_ = {"C#": "H", "D#": "I", "F#":"J", "G#":"K", "A#":"L"} 2. 제한 사항에 있는 조건들 확인. - 1) 재생된 시간 계산 - 2) 재생된 시간이 제일 긴 조건 확인 - 3) 음악 ..

Python/CoTe 2024.02.06

파이썬 리스트 slicing. for 문 없이 반복 접근 [::] (프로그래머스 5명씩)

Start Index: Not specified, defaults to the beginning of the list (0). Stop Index: Not specified, defaults to the end of the list. Step Size: Not specified, defaults to step size as 1. my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] result_default = my_list[::] # == my_list[::1] print(result_default) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 만약에 5의 배수대로 값들만 갖고 오고 싶을 때는 result_default = my_list[::5] 대표적으로, 프로그래머스..

[프로그래머스] level2 스킬트리 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항에서 1이상 26이하이며, 중복된 스킬은 없다고 한다. 접근법 정렬 전 후 비교로 접근 1. 모든 skill_tree에 대해 skill들을 돌면서 만약 해당 skill 이 존재한다면 skill 순서 정보와 함께 따로 list 배열에 저장. 2. 순서 정보가 포함된 리스트이기 때문에 정렬 했을 때 스킬을 순서대로 사용했다면 정렬하기 전과 후가 같은 값이어야 함. 예를 들어서, "CBD" 순..

Python/CoTe 2024.01.30

[프로그래머스] level2 할인 행상 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아... 왤케 문제 글이 길면 읽기 싫지...괜히 이해 더 안 가는 것 같은 착각. 이 문제가 그랬다.. 막상 생각보다 쉬운 문제라 10분 컷 했나.. 접근법 0. number의 합은 항상 10이고 항상 연속 10일이다. 1. want 속 물품들과 number 들 간의 pair를 dictionary 로 만들어 준다. 2. for 문으로 discount 중 처음부터 10일씩 잘라가며 1에서 만든 ..

Python/CoTe 2024.01.30

[프로그래머스] level2 - 두 큐 합 같게 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 문제 자체는 이해하기 쉽고, 직관적으로 생각한 풀이가 맞긴한데, 시간복잡도를 조심해야한다. 제한사항 ※ 접근법 1. 두 큐의 합을 비교하여 큰 큐에서 작은 큐로 원소를 하나씩 이동하며 작업 수행 수를 count한다. 2. 두 큐의 합이 같아지는 순간이 최소 3. 두 큐의 합이 같은 순간이 없다면 -1 을 return ※ 시간 복잡도 유의사항 1. 분명 while 문이나 for 문을 해야할 ..

Python/CoTe 2024.01.25

[programmers] 공원 산책 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 주의사항 1. 흔히 우리가 수학에서 쓰는 좌표계를 (x,y)로 표시한다. 그러나 프로그래밍에서는 배열을 좌표로 생각한 접근은 보통 이중 for문으로 하게 되는데, Width 는 x 좌표, Height 는 y 좌표계로 접근한다. 예를 들어, 아래와 같이 width 넓이가 4, height 높이가 3인 배열을 만들어서 이중 for 문으로 접근하면, coordinate = [[0 for _ in ..

Python/CoTe 2024.01.24

[프로그래머스] [1차] 프렌즈 4블록 python

https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 접근법 시간 에러 날까봐 최대한 for문을 줄여보려고 했는데, 이 문제는 그냥 for 문이랑 while 문으로 푸는 문제였다.. while 문을 사용해서 1. 4개 블록이 같은 블록인지 확인하는 과정 2. 같은 블록이라면 해당 블록의 위치 정보 저장 3. 위치에 해당하는 블록 제거 + 위에 있던 블록 아래로 한 칸씩 밀어주기. 내가 풀면서 느꼈던 주의할 점 ▷ 2번에서 블록의 위치를 저장할 때..

Python/CoTe 2023.12.18
728x90