[프로그래머스 Programmers][Python] 여행경로
문제 : https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 | 프로그래머스 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr Copy-Driven-dev 닉값했다. 개인적으로는 재귀를 정말 싫어하는데, DFS는 재귀를 많이 쓰더라. 대충 방식은 재귀를 쓰나 안쓰나 같다. 티켓을 출발-도착 순으로 나눠서 dict에 넣는다. 티켓의 도착지를 역순으로 저장한다. 스택을 만들고 돌면서 티켓의 출발지에 없거나 -> top not in t 있어도 도착지를 다 돌았으면 -> len(t[top])..
더보기
[프로그래머스 Programmers][Python] K번째수
문제 : https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 | 프로그래머스 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 설명이 필요할거 같지는 않다. 명령어 단위로 잘라서 정렬하고 위치를 answer에 저장한다. 프로그래머스 문제들은 답은 원소 위치를 1부터 시작하게 주고 정작 데이터는 0부터 시작하게 주는 경우가 좀 있다. 리스트 인덱스에 조심하자. def solution(array, commands): answer = [] for c in commands: a = sorted(array[c[0]-1:c[1]]) ans..
더보기
[백준][9095][Python][DP] 1,2,3 더하기
문제 : https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 간단한 DP 문제다. 1,2,3 더하기 시리즈 문제를 보면, 여러 제약조건이 생기면서 (같은 번호 2개이상 붙이면 안..
더보기
[백준][Python][11057][DP] 오르막 수
문제 : https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. www.acmicpc.net 이 문제는 고생 많이한 문제다. 문제의 해결법은 다음과 같다. d[i] 를 i+1 번째 자릿수의 앞자리 로 하자. 1자리 숫자들은 전부 오르막 수로 볼수 있기 때문에 1로 초기화한다. 이제 생각해보면 12,13,14.. 23,24,25..등등은 전..
더보기