본문 바로가기
728x90

Coding Test26

백준 5585 - 거스름돈 ( Python ) https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 그리디 알고리즘의 대표격이라고 할 수 있는 문제인 것 같다 제한시간: 10분 1. 모든 동전을 내림차순으로 정렬 2. 정렬한 배열을 순회하며 거스름돈을 해당 동전으로 나눈 몫을 카운팅 3. 나눈 몫 * 동전 를 거스름돈에서 빼준다. coins = [500, 100, 50, 10, 5, 1] pay = int(input()) change = 1000 - pay count = 0.. 2022. 11. 29.
백준 1541 - 잃어버린 괄호 ( Python ) https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 키포인트 : -를 기준으로 하여 괄호를 치는 것이 가장 작은 수를 만들 수 있다. 처음에는 마이너스가 존재하는 경우 아닌 경우로 풀이하였는데 +기준으로 분리하여 더한다는 것이 공통된 부분이였고 -1을 하는 것이 논리적으로 바로 알아보기 힘든 점이 있어서 개선하였다. 1. - 기준으로 분리 2. 첫번째 요소를 제외하고 다 더함 3. 첫번째 요소를 + 기준으로 분리하여 다시 빼고 * -1 한 후.. 2022. 11. 27.
백준 11047 - 동전 0 (Python) 백준 11047 동전 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 예제 풀이 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 10가지의 동전을 4200원의 최소 동전 개수를 구하려면 큰 숫자부터 값을 빼줘야 한다 4200 - 1000 = 3200 3200 - 1000 = 2200 2200 - 1000 = 1200 1200 - 200 = 200 200 - 100 = 100 100 - 100 = 0 총 6번 1.. 2022. 11. 25.
백준 11399 - ATM( Python ) https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 예제 풀이 n = 5 p = [ 3, 1, 4, 3, 2 ] 적게 기다리는 순으로 우선 오름 차순 정렬을 해줘야한다 sorted = [ 1, 2, 3, 3, 4 ] 1 1 + 2 = 3 1 + 2 + 3 = 6 1 + 2 + 3 + 3 = 9 1 + 2 + 3 + 3 + 4 = 13 => 1 + 3 + 6 + 9 + 13 = 32 즉, 1부터 이전 값을 계속 반복하며 더하는 문제이다. 2중 for문으로 해결이 가능하다 n = .. 2022. 11. 23.
백준 2839 - 설탕 배달 ( Python ) 2839 - 설탕 배달 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 예제 풀이 1. 18인 경우 18 -> 5로 나누어 떨어지지 않음 -3 count += 1 15 -> 5로 나누어 떨어짐 15 // 5 count += 3 count 4 2. 4인 경우 나누어 떨어지는 경우가 없으므로 -1 3. 6인 경우 6 -> 5로 나누어 떨어지지 않음 -3 count +=1 3 -> 5로 나누어 떨어지지 않음 -3 count +=1 0 -> 종료 count 2 4. 9인 경우 9 -> 5로 나누어 떨어지지 않음 -3 count.. 2022. 11. 17.
프로그래머스 최솟값 만들기 - javascript https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2단계치고 정말 쉬웠던 문제 첫번째 배열을 작은 순으로 정렬하고 두번째 배열을 큰 순으로 정렬하면 최소합이 나온다는 간단한 알고리즘 자바스크립트의 내장 함수인 sort를 사용하여 풀면 쉽게 정렬이 가능하다. sort()만 쓰면 유니코드 순으로 정렬이 되기때문에 1,10,2.. 이와 같은 정렬이 이루어진다. 숫자를 정렬하기 위해서는 하단 코드처럼 작성해야한다. function solution(A,B.. 2022. 9. 24.
728x90
반응형