728x90

알고리즘 48

[프로그래머스 lv 2] 다리를 지나는 트럭.py

https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 다리의 길이, 다리가 견딜수 있는 하중, 트럭의 개별 무게 가 주어진다. 다리는 1초에 한칸만 지날 수 있고, 최대 하중 초과의 무게는 올라가면 안된다. 이때 모든 트럭이 다리에서 나오려면 몇 초가 걸리는지 반환하면 된다. 입출력의 예는 다음과 같다. bridge_length weight truck_weights return 2 10 ..

알고리즘 2022.02.11

[프로그래머스 lv 2] 기능개발.py

https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 기능은 100%가 되어야 서비스에 반영할 수 있고, 기능마다 개발 속도는 다르다. 만약 뒤에 있는 기능이 앞의 기능 보다 먼저 개발된다면 앞기능이 배포될 때 함께 배포된다. 각 배포마다 몇개의 기능이 배포되는지를 반환하면 된다. 입출력의 예는 다음과 같다. progresses speeds return [93, 30, 55] [1, 30, 5] [2, 1]..

알고리즘 2022.02.11

[프로그래머스 lv 2] 주식가격.py

https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 초단위로 기록된 주식 가격이 담긴 배열이 주어질 대, 해당 가격이 떨어지지 않은 기간은 몇 초 인지를 return 하면 되는 문제이다. 입출력의 예는 다음과 같다. prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 이에 대한 설명은 아래와 같다. 1초 시점의 ₩1은 끝까지 가격이 떨어지지 ..

알고리즘 2022.02.10

[자료구조] 스택, 큐

스택과 큐는 비슷해보이지만 다른 구조이다. 우선 공통점으로는 둘 다 데이터를 쌓고 이를 하나씩 내보낼 수 있는 점이 있다. 차이점은 이 두가지 구조의 특징을 잘 나타내고 있는데, 아래와 같이 정리 할 수 있다. 위 그림 처럼 입구와 출구가 같은 구조 이다. 입력은 A -> B -> C 순으로 이루어지고, 출력은 C -> B -> A 순으로 이루어진다고 생각하면 쉽다. 이를 후입 선출, LIFO (Last In First Out) 이라고 부른다. 언어마다 조금은 다를 수 있지만 대게 데이터를 넣는 것을 push, 빼는 것을 pop 이라 한다. 이때 pop은 마지막 데이터를 리턴해주고, 스택에서는 제거하는 연산임을 주의하면 된다. 참고로 파이썬에서 스택은 리스트를 이용하여 구현하고, ..

알고리즘 2022.02.09

[프로그래머스 lv 1] 모의고사.py

https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 3명의 수포자가 나온다. 각 수포자들은 본인만의 찍는 방식이 있는데 이를 가지고 주어진 답과 비교하여 제일 문제를 많이 맞춘 사람(들)을 리턴하면 된다. 입출력의 예는 다음과 같다. answers return [1,2,3,4,5] [1] [1,3,2,4,2] [1,2,3] 완전 탐색 문제인 만큼 주어진 답을 전부 순회하면서 수포자의 찍는 방식과 비교하여 각 수포..

알고리즘 2022.02.08

[프로그래머스 lv 1] 자연수 뒤집어 배열로 만들기.py

https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr 주어진 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열의 형태로 리턴하면 되는 문제이다. (정렬해서 뒤집는 게 아니라 있는 그대로를 뒤집는 것이다!) 입출력의 예는 다음과 같다. n return 12345 [5,4,3,2,1] 파이썬에서 뒤집는 것(함수)을 사용할 수 있는 자료형중..

알고리즘 2022.02.03

[프로그래머스 lv 1] 2016년.py

https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 2016년 1월 1일은 금요일이라는 정보를 바탕으로 2016년의 특정 날짜의 요일을 알아내면 되는 문제이다. (참고. 2016년은 윤년이다) 입출력의 예는 다음과 같다. a b result 5 24 "TUE" 처음에는 달별로 일수를 나누어 저장하고 이를 요일로 잘라야 하나 고민했는데, 혹시나 하는 마음에 날짜 관련 라이브러..

알고리즘 2022.02.02

[프로그래머스 lv 1] 시저암호.py

https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 주어진 문장의 알파벳을 일정한 거리만큼 밀어서 만드는 암호가 시저암호이다. 이 시저암호문을 만드는 코드를 작성하는 것이 목표이다. (단 공백은 밀어도 공백이다.) 입출력의 예는 다음과 같다. s n result "AB" 1 "BC" "z" 1 "a" "a B z" 4 "e F d" 아스키 코드를 이용하면 되는 문제이다. chr() :..

알고리즘 2022.01.31

[프로그래머스 lv 1] 예산.py

https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 부서가 신청한 예산이 배열로 나오고 총 쓸 수있는 예산이 주어진다. 이 예산 안에서 부서가 신청한 예산을 배분했을때, 최대한 많은 부서에 신청한 금액만큼 주는 게 이 문제의 목적이다. 입출력의 예는 다음과 같다. d budget result [1,3,2,5,4] 9 3 [2,2,3,3] 10 4 부서별 예산안 리스트를 오름 차순 정렬한 후, 적은 예산의 부서(앞) ..

알고리즘 2022.01.27

[프로그래머스 lv 1] 정수 내림차순으로 배치하기.py

https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 정수 n 의 값의 각 숫자를 내림차순 정렬하여 다시 숫자값으로 반환해야 하는 문제이다. 입출력의 예는 다음과 같다. n return 118372 873211 우선 n을 문자열로 바꾸고, 이를 리스트로 형변환 해주었다. 그 다음 리스트의 정렬 메소드를 통해 숫자를 정렬한 후, 이를 다시 문자열 -> 정수 타입으로 변..

알고리즘 2022.01.26
728x90
반응형