• 문제 링크
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();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 13413 오셀로 재배치 - Greedy / Java (0) | 2023.04.12 |
---|---|
[백준] 11256 사탕 - Greedy / Java (0) | 2023.04.11 |
[백준] 5545 최고의 피자 - Greedy / Java (0) | 2023.04.09 |
[백준] 6550 부분 문자열 - Greedy / Java (0) | 2023.04.08 |
[백준] 20115 에너지 드링크 - Greedy / Java (0) | 2023.04.07 |
댓글