Python/CoTe 70

[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

[프로그래머스] 3차 압축

https://school.programmers.co.kr/learn/courses/30/lessons/17684# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr TIP 0. {'A':1, 'B':2 ...} dictionary 만들기 1. 프로그래머스의 설명대로 w는 현재 글자, c는 다음 글자로 놓고 2. w가 dictionary에 있는지 확인 3. w+c 가 dictionary에 있는지 확인을 반복적으로 해야한다. (→ 나는 이것을 while 문과 함수로 이용) 4. 없다면 w+c 를 dictionary에 추가 5. 만약 w+c가 dictionary..

Python/CoTe 2023.12.12

[programmers] level2 - 연속 부분 수열 합의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 포인트 1. 주어진 건 리스트의 수열 원소들이지만.. 수열 합을 구할 때는 연속 수열이다! → 즉, [7, 9, 1, 1, 4] 가 반복되는 [7, 9, 1, 1, 4, 7, 9, 1, 1, 4 …] 2. 구할 수 있는 수열 합의 개수이다. → 즉, 기존에 합이 11인 값이 있다면, 1번만 계산한다. 해결 ▶ 반복되는 수열의 접근은 간단하게 elements로 주어진 수열을 두 번 이어서 붙였다...

Python/CoTe 2023.02.06

[programmers] level0 - 특이한 정렬

https://school.programmers.co.kr/learn/courses/30/lessons/120880 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr level0 치고 정답률은 68%로 꽤 낮은 문제. ※ 첫 접근법 1. n을 기준으로 n보다 작은 리스트 1개, 큰 리스트 1개를 만들어서, 2. 각 리스트에서 하나씩 pop 하여 비교하여, 차이가 더 적은 것은 answer에 append하고 아닌 것은 다시 원래 리스트로 돌려 보내는 방식 → 코드가 쓸데없이 길어지고, 예시는 통과해도 테스트 케이스 3번에서 오류 난다. ※ 두 번째 접근법 굳이..

Python/CoTe 2023.01.11

[programmers] level3 - 최고의 집합 python

https://school.programmers.co.kr/learn/courses/30/lessons/12938# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 접근법 첫 번째 힌트, 합이 s가 되는 모든 경우의 수를 구해서, 곱했을 때 최고일 때를 구하는 것이 아니다. 효율성 테스트에서 실패 → 어떤 숫자의 조합으로 곱했을 때 최댓값을 구하는지 딱 하나의 정답만 생각하면 된다. (프로그래머스는 예시 설명을 하면서 사람을 일부러 생각을 한 쪽으로만 유도하는 경향이 있는 것 같다..) ※ 접근법 두 번째 힌트, (첫 번째 힌트로만 못 풀었을 때, 어떤..

Python/CoTe 2022.11.14

[programmers]level3 정수삼각형

https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※접근법 TopDown 방식과 BottonUp 모두 이용가능하다. TopDown 방식으로 하면, 아랫줄이 기준이 되어 윗줄의 왼쪽과 오른쪽에 연결된 노드들을 비교하여 가장 큰 값을 더하는 다이나믹 프로그래밍 방식으로 더해 나간다. Top Down으로 하면 마지막 줄에 나온 값들 중 가장 큰 값을 리턴해야하고, Bottom Up 방식으로 하면 결국 최종 가장 큰 값만 저장된다. def TopDown..

Python/CoTe 2022.10.20

[programmers] level2 위장

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※접근법 1. 딕셔너리에 나올 수 있는 카테고리별로 저장해준다. -> 해당 카테고리에 계속 append 해야 하기 때문에 collections 의 defaultdict 이용 2. 처음에는 모든 조합의 경우의 수를 구하기 위해 1 카테고리를 선택할 때, 2 카테고리를 선택할 때로 매번 나누어서 생각했는데, 정답은 맞으나 1번 테스트 케이스에서 시간초과가 난다. 3. 핵심적으로는 조합을 순열로 풀 수..

Python/CoTe 2022.10.20

[programmers] 숫자짝궁 level1 - python

https://school.programmers.co.kr/learn/courses/30/lessons/131128?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 자체는 쉬우나 중복 허용 교집합 찾는 방법에서 시간 초과 조심! POINT set 함수를 이용하면 중복 없이 교집합을 찾는다. 중복 허용되는 list 끼리의 교집합을 찾기 위해서는 collections 의 Counter 이용! (Counter의 존재를 쉽게 까먹는 것 같음..) 문제 풀이 순서 1. Counter(listX) & Counter(listY) 하면..

Python/CoTe 2022.10.17

[programmers] level2, 2*n 타일링

https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대표적인 다이나믹 프로그래밍 문제! (사실 이 문제보고 다이나믹 프로그래밍 생각 못하면 다이나믹 프로그래밍 알고리즘 다시 공부해야함) 제한사항에서 얻을 수 있는 힌트! 1. 60,000이하의 자연수이다 -> 경우의 수가 많다, 일반적인 조합 문제로 접근하는 건 올지 않다. -> 동적 프로그래밍 2. 경우의 수를 1,000,000,007으로 나눈 나머지를 return -> 계산시 시간 효율성을 따진..

Python/CoTe 2022.08.28
728x90