파이썬(41)
-
[프로그래머스] 연속된 부분 수열의 합 - python
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이제 "부분 합"이라는 단어가 나오면 자동적으로 'right까지의 합 - left까지의 합'을 떠올린다. 확실히 매번 합을 구하는 것보다, 먼저 i까지의 합을 계산하고 뺄셈을 이용하는 방식이 효율적이다. 해당 문제는 부분 합이 k가 되는 부분을 찾는 문제이다. 풀이는 간단하다. left, right를 0,0으로 두고 앞서말한 'right까지의 합 - left까지의 합'를 계..
2023.07.11 -
[프로그래머스] 아방가르드 타일링 -python
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/181186 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 보기 해당 문제는 dp 문제로, dp 좀 풀어봤다 싶은 분들은 보자마자 dp네? 하고 타일 경우의 수 부터 체크하셨을 것이다 ㅎㅎ 개인적인 생각으로 문제보고 dp라는 생각을 못하셨다면 좀더 쉬운 dp 문제를 풀고 오는 것을 추천드립니다! 테스트 케이스에 3이 있어서 그런가 dp[i] = dp[i-1] + dp[i-2] * 2 + dp[i-3] * 5 까지는 발견하기 쉬웠다. 하지..
2023.07.11 -
[프로그래머스] 주차 요금 계산 - python
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 특별한 알고리즘 문제보다는 구현 문제였다. 차별점을 찾자면 무작위로 저장되어 있는 값을 차량별로 값을 구분하여 처리해야 했다는 점이다. 필자는 이를 defaultdict를 이용해서 해결했다. 차량의 주차 시간은 출차시간 - 입차시간 이기에 입차시간은 -로 출차시간은 +로 저장했다. HTML 삽입 미리보기할 수 없는 소스
2023.06.28 -
[프로그래머스] 이모티콘 할인 행사 - python
문제보기 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 해당 문제는 단순한 구현 문제였다. 30분 정도 안에 풀어야 할 거 같은데 변수지정을 잘못해 약간 헤맸는데 1시간 조금 안걸렸다. 아직 갈 길이 멀다.. 이모티콘 개수가 7개로 적기 때문에 필자는 itertools에 product(중복순열)를 사용했다. 최대 7^4이니 그리 크지 않을 거라고 판단했다. 만일 수가 컸다면... dfs/bfs를 이용하지 않았을 까 싶다. HTML ..
2023.05.11 -
[프로그래머스] 택배 배달과 수거하기 - python
문제출처 https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 및 코드 해당 문제는 주된 내용은 배달과 픽업을 위해 이동해야하는 거리를 구하는 것이다. 조건에 의하면, 집마다 거리는 1이고 한번에 이동할 수 있는 용량이 존재한다. 이를 위해서는 멀리있는 집부터 배달과 픽업을 완료해야한다. 가장 먼 거리부터 배달을 완료하고 배달하러 가는 길에 가장 먼거리부터 픽업을 해와야한다. 필자는 stack을 이용했다. input으로 들어온 deliv..
2023.04.25 -
[백준] 11501번: 주식 - python
문제보기 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 풀이 및 코드 필자가 해석하기에 해당 문제에서는 함정이 있었다. 원하는 만큼 가지고 있는 주식을 판다. -> 최대이익을 얻기 위해서는 전부 팔거나 전부 사거나 두가지 경우만 존재했다. 아무것도 안한다. -> 일단 구매하고 동일한 가격에서 판매해도 동일하다 필자는 뒤에 더 비싼 가격이 나온다면 구매하고, 더 비싼 가격이 나오지 않는다면 해당 가격에서 판매 하는 두가지 원칙을 기..
2023.04.08