본문 바로가기

알고리즘/백준 알고리즘21

[Baekjoon] 백준 알고리즘: 11399번- ATM 1. 문제 www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 내가 생각했던 풀이과정 이 문제는 그리디 문제이다. 그리디라고 생각한 이유는 다음과 같다. 그리디 알고리즘이란 매 순간마다 최적의 선택을 하여 정해진 목표까지 계산해 나가는 것이다. 탐욕 알고리즘은 순간순간 최적의 경우만 저장하여 최적의 수로만 진행하면 최적의 해를 구할 수 있다. 대기하는 사람이 '가장 작은 순서'로 기다리게 되면 최적의 해를 구할 수 있기 때문이다. 문제 풀이 요소중에 1명이 끝날 때까지, 기다려야하기 때.. 2021. 3. 23.
[Baekjoon] 백준 알고리즘: 11650 - 좌표정렬하기 1. 문제 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 2. 내가 생각했던 첫번째 풀이과정 1) 좌표를 list로 입력받는다 2) 입력된 좌표의 x축을 비교하고, 그 다음 y축을 비교한다. 3) 숫자 2개를 비교하여 값에 따라 버블 정렬을 통해 정렬해주려고 했다 4) 시간초과 관계로 다른 풀이 과정을 생각해보게 되었다 3. 내가 생각했던 두번째 풀이과정 sorted() 함수에 대해 찾아보았다. sort.. 2021. 3. 21.
[Baekjoon] 백준 알고리즘: 2750 - 수 정렬하기 1. 문제 www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 내가 생각했던 풀이과정 1) 빈 리스트에 숫자를 입력받는다. 2) 파이썬 sort를 통해 입력받은 숫자를 정렬한다 3) 반복문을 통해 한 줄씩 출력한다 3. 나의 풀이 n = int(input()) temp = [] for i in range(n): temp.append(int(input())) temp.sort() for j in range(n): print(temp[j]) 4. 다른 사람의 풀이 .. 2021. 3. 1.
[Baekjoon] 백준 알고리즘: 5622 - 파이썬 1. 문제 www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 2. 내가 생각했던 풀이과정 첫번째 풀이과정 1) 단어를 한 단어씩 자른다 2) 그 단어가 어떤 숫자인지 판단 3) 숫자에 따른 시간 계산 여기서 제일 고민했던 부분이 바로 2번에서 그 단어가 어떤 숫자인지 판단할 때, 자른 단어를 어떻게 처리하느냐 하는 문제였다. 처음 생각했던 부분은 딕셔너리를 이용하여 { 1: 'a', 'b', 'c' } 이렇게 해결할 수 있나 고민해보았다. 하지만, 자른 단어를 숫자로 변환하는 과정이 아스키코드로 변환하기에는 매우 불편하다는 것을 깨닫고 이 풀이.. 2021. 1. 5.