본문 바로가기

코딩 테스트/백준 온라인 저지5

[백준 10809번] - 알파벳 찾기 [문제] 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. [입력] 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. [출력] 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. [내가 생각한 방법] dict 형태로 a ~ z 까지 키 값과 value를 모두 -1로 만들고 s라는 .. 2023. 2. 20.
[백준 1789번] - 수들의 합 [문제] 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? [입력] 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. [출력] 첫째 줄에 자연수 N의 최댓값을 출력한다. [예제 입력] 200 [예제 출력] 19 [내가 생각한 방법] 서로 다른 N개의 자연수 합이 S라고 할 때, 자연수 N이 최대값이 되려면 1부터 1씩 증가하는 등비수열이 성립해야 N의 값이 최대값이 된다고 생각했다. 따라서, 등비수열의 합인 항의 개수*(첫번째 항 + 마지막 항) / 2 식을 활용해서 아래와 같이 풀었다. [아쉬운 점] 마지막 출력을 N-1 말고 N으로 하고 싶은데 ,,, 일단 생각이 안나서 킵 ... 다음에 디벨롭 해보자 S = int(input()) .. 2023. 2. 8.
[백준 11047번 - 동전0] 문제풀이 - Python3 N, K = map(int, input().split()) coins = [int(input()) for _ in range(N)] coins.sort(reverse = True) value = 0 result = 0 # 4200이 거슬러줘야 할 값이라고 가정 for coin in coins: value = (K // coin)*coin # 4000 result += K // coin # 4만큼 더해줌 K -= value # 원래 값 - 동전의 배수 값 = 200 if K == 0: break print(result) 2023. 1. 25.
[백준 11399번 - ATM] 문제 풀이 (Python3) n = int(input()) times = list(map(int, input().split())) result = 0 times.sort() for i in range(len(times)): result += times[i]*n n -= 1 print(result) 2023. 1. 24.