Problem Solving/Baekjoon
[백준] 17521 Byte Coin - Greedy / Java
graycode
2023. 4. 10. 22:10
• 문제 링크
17521번: Byte Coin
입력은 표준입력을 사용한다. 첫 번째 줄에 요일 수를 나타내는 양의 정수 n과 초기 현금 W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)가 주어진다. 다음 n 개의 줄에서, i번째 줄은 i일의 바이트 코인 가격을 나
www.acmicpc.net
• 풀이 과정
첫째날의 가격을 먼저 입력받고, 현재 날이 이전 날의 가격보다 높다면 매수하고 아니라면 매도한다.
출력 시점에 현재 남은 코인의 개수가 있다면 모두 매도해 보유금에 더해 출력한다.
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
long w = Integer.parseInt(st.nextToken());
long cnt = 0;
int prev = Integer.parseInt(br.readLine());
while (n-- > 1) {
int cur = Integer.parseInt(br.readLine());
if (cur > prev) {
cnt += w / prev;
w %= prev;
} else if (cur < prev) {
w += prev * cnt;
cnt = 0;
}
prev = cur;
}
bw.write(String.valueOf(w + prev * cnt));
bw.flush();
}
}