๋ฌธ์
ํ์ด
์ฒ์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณธ๋ค๋ฉด ์กฐ๊ธ ์๊ฐํ๋ ๋ฐฉ์์ ๋ฌ๋ฆฌํด์ผํด์ ์ด๋ ค์์ด ์์์ ๊ฒ ๊ฐ๋ค. ๋๋ ์ฒ์์ ๋ฌธ์ ๋ฅผ ๋ดค์ ๋ ์คํ์ด๋ ํ๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ ํ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ํ ์คํธ ์ผ์ด์ค์ ์ฒซ๋ฒ์งธ๋ 10, 7, 6 ์ผ๋ก ๊ฐ์ด ์ ์ ๊ฐ์ํ๋ฏ๋ก ๊ตฌ๋งคํ์ง ์๋ ๊ฒ์ด ์ต์ ์ ํด์ด๋ค. ๋๋ฒ์งธ๋ ๊ฐ์ด ํญ์ ์ฆ๊ฐํ๋ฏ๋ก ๊ทธ๋ ๋ฐ๋ก ์ฌ์ ๋ง์ง๋ง ๋ ์ ํ๋ฉด๋๋ค. ๋ง์ง๋ง ์ธ๋ฒ์งธ ์ผ์ด์ค๋ง ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด์ฃผ๋ฉด ๋๋๋ฐ 1, 1, 3, 1, 2 ๋ก ์ฒซ์งธ์ ๋์งธ๋ ์๋ ๊ตฌ๋งค๋ฅผํด์ ์ ์งธ๋ ์ ํ๊ณ , ๋ท์งธ๋ ์ ์ฌ์ ๋ค์ฏ์งธ๋ ์ ํ๋ฉด๋๋ค. ๋จผ์ ์ด ์์๋ฅผ ์ญ์ผ๋ก ์๊ฐํด๋ณด์. ๊ทธ๋ฌ๋ฉด 2, 1, 3, 1, 1์ด ๋๋ค. 2->1๋ก ๊ฐ๋ ํ๊ณ , 3->1๋ก ๊ฐ๋ ํ๊ณ , 1->1๋ก ๊ฐ๋ 3-1์ ํด์ฃผ๋ฉด ๋๋ค. ์ฆ, ์ญ์ผ๋ก ๊ตฌ์ฑ๋ ์ด์ ๊ฐ์ด ๋ค์ ๊ฐ๋ณด๋ค ํฌ๋ค๋ฉด ํ๊ณ , max_val์ด๋ผ๋ ๊ฐ์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ์ฅํด ๋๋๋กํ๋ค.
์ด๊ฒ์ ์ฝ๋๋ก ๋ณด์๋ฉด ์๋์ ๊ฐ๋ค.
# 1859. ๋ฐฑ๋ง ์ฅ์ ํ๋ก์ ํธ D2
T = int(input())
for test_case in range(1, T+1):
N = int(input())
price = list(map(int, input().split()))
price = price[::-1]
length = len(price)
max_val = price[0]
result = 0
for i in range(1, length):
if max_val > price[i]:
result += max_val - price[i]
else:
max_val = price[i]
print("#{} {}".format(test_case, result))
1. price๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ๋ค์ง์ด ์ค๋ค.
2. max_val์๋ ์ฒ์ ์์๊ฐ์ ๋ฃ์ด์ค๋ค.
3. ์ธ๋ฑ์ค๋ 1๋ถํฐ ๋ง์ง๋ง๊น์ง for๋ฌธ์ ๋์์ค๋ค.
- ๋ง์ฝ max_val์ด ๊ฐ๊ฒฉ๋ณด๋ค ๋น์ธ๋ค๋ฉด ๋ฌผ๊ฑด์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ํด์ค๋ค.
- max_val์ด ๊ฐ๊ฒฉ๋ณด๋ค ์ธ๊ฑฐ๋ ๊ฐ๋ค๋ฉด max_val์ ๊ฐ์ ์ต๋๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ค๋ค.
Java ์ฝ๋
package SWEA;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class SW_1859 {
public static void main(String[] args) throws Exception, NullPointerException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for(int test_case = 1; test_case <= T; test_case++)
{
int N = Integer.parseInt(br.readLine());
int[] price = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i=0; st.hasMoreTokens(); i++){
price[i] = Integer.parseInt(st.nextToken());
}
int length = price.length;
int maxValue = price[N-1];
long result = 0;
for(int i=N-1; i>=0; i--){
if(price[i] > maxValue) maxValue = price[i];
result += maxValue-price[i];
}
System.out.println("#" + test_case + " " + result);
}
}
}
ํ ์คํธ ์ผ์ด์ค 10๊ฐ์ค 7๊ฐ ๋ง์๋ค๊ณ ํด์ ์๋ฌด๋ฆฌ ๋ด๋ ํ์ด์ฌ ์ฝ๋๋ ๋น๊ตํด๋ณด๊ณ ๋ค๋ฅธ์ฌ๋์ ์ฝ๋๋ ๋น๊ตํด๋ดค์ ๋ ํ๋ฆฐ๊ฒ ์์๋๋ฐ ์๊ณ ๋ณด๋ result์ ํ์ ์ด intํ์ด์๋ค. 100๋ง * 1๋ง ํ์ ๋ ํํํ ์ ์๋ intํ ๋ฒ์๋ฅผ ๋์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ๊ฒ ๋๋งค ์๊ฐ ๋ญ๋น๋ฅผ ํ๋๊ฒ ..
'๐๏ธ Algorithm > โน๏ธ SW Expert Academy [SWEA]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โน๏ธ[SW Expert Academy] [Python] [D3] [1244] ์ต๋ ์๊ธ (1) | 2024.03.18 |
---|---|
โน๏ธ[SW Expert Academy] [Python] [D4] [1210] Ladder1 (0) | 2024.03.15 |
โน๏ธ[SW Expert Academy] [Python] [D4] [1249] ๋ณด๊ธ๋ก (0) | 2024.03.14 |
โน๏ธ[SW Expert Academy] [Python] [D3] [1208] Flatten (0) | 2024.03.12 |
โน๏ธ [SW Expert Academy] [Python] [D3] 1206. View (0) | 2024.03.12 |