[λ°±μ€€/BOJ] 15953번: μƒκΈˆ ν—Œν„° (JAVA)

2022. 6. 5. 23:33·개발/Algorithm

문제 링크:

https://www.acmicpc.net/problem/15953

 

15953번: μƒκΈˆ ν—Œν„°

첫 번째 쀄에 μ œμ΄μ§€κ°€ 상상λ ₯을 λ°œνœ˜ν•˜μ—¬ κ°€μ •ν•œ 횟수 T(1 ≤ T ≤ 1,000)κ°€ μ£Όμ–΄μ§„λ‹€. λ‹€μŒ T개 μ€„μ—λŠ” ν•œ 쀄에 ν•˜λ‚˜μ”© μ œμ΄μ§€κ°€ ν•΄λ³Έ 가정에 λŒ€ν•œ 정보가 μ£Όμ–΄μ§„λ‹€. 각 μ€„μ—λŠ” 두 개의 음이 μ•„λ‹Œ

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.Arrays;
import java.util.StringTokenizer;

public class Main {

	/* 제1회 μ½”λ“œ νŽ˜μŠ€ν‹°λ²Œ 정보 */
	int[] rank1Info  = {1, 2, 3, 4, 5, 6};
	int[] prize1Info = {500, 300, 200, 50, 30, 10};
	
	/* 제2회 μ½”λ“œ νŽ˜μŠ€ν‹°λ²Œ 정보 */
	int[] rank2Info  = {1, 2, 4, 8, 16};
	int[] prize2Info = {512, 256, 128, 64, 32};
	
	public static void main(String[] args) throws IOException {
		Main solution = new Main();
		
		solution.solve();
	}
	
	public void solve() {
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
			
			StringTokenizer st = new StringTokenizer(br.readLine());
			
			// λ“±μˆ˜ 가정을 돌릴 횟수
			int t = Integer.parseInt(st.nextToken());
			
			for (int i = 0; i < t; i++) {
				st = new StringTokenizer(br.readLine());
				
				int rank1 = Integer.valueOf(st.nextToken());
				int rank2 = Integer.valueOf(st.nextToken());
				
				int result = calc(rank1, rank1Info, prize1Info) 
						   + calc(rank2, rank2Info, prize2Info);
				
				bw.append(result + System.lineSeparator()); // '/r/n'κ³Ό 같은 μ—­ν• 
			}
			
			bw.flush();

			bw.close();
			br.close();
			
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public int calc(int p, int[] rankInfo, int[] prizeInfo) {
		// 총 μƒκΈˆ
		int totPrize  = 0;
		// μƒκΈˆμ„ 받을 수 μžˆλŠ” 인원
		int totPerson = Arrays.stream(rankInfo).sum();

		if (p > 0 && p <= totPerson) {
			int count = 0;
			
			for (int i = 0; i < rankInfo.length; i++) {
				count += rankInfo[i];
				
				if (p <= count) {
					totPrize += prizeInfo[i];
					
					return totPrize * 10000;
				}
			}
		}
		return totPrize * 10000;
	}
}

각각의 κΈ°λŠ₯을 ν•˜λŠ” 클래슀λ₯Ό λ”°λ‘œ λ§Œλ“€μ–΄μ„œ κ΅¬ν˜„ν•˜λ €κ³  ν–ˆλ‹€.
이후에 νŽ˜μŠ€ν‹°λ²Œ 정보가 더 μΆ”κ°€λ˜μ–΄λ„ μ‰½κ²Œ 계산할 수 μžˆκ²Œλ” 정보λ₯Ό λ‹΄λŠ” 객체가 있으면 쒋을 것 κ°™λ‹€.

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'개발 > Algorithm' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 42586번: κΈ°λŠ₯ 개발 (JAVA)  (0) 2022.06.20
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 17677번: λ‰΄μŠ€ ν΄λŸ¬μŠ€ν„°λ§ (JAVA)  (0) 2022.06.20
[λ°±μ€€/BOJ] 1406번: 에디터 (JAVA)  (0) 2022.06.08
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 92334번: μ‹ κ³  κ²°κ³Ό λ°›κΈ° (JAVA)  (0) 2022.06.06
'개발/Algorithm' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 42586번: κΈ°λŠ₯ 개발 (JAVA)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 17677번: λ‰΄μŠ€ ν΄λŸ¬μŠ€ν„°λ§ (JAVA)
  • [λ°±μ€€/BOJ] 1406번: 에디터 (JAVA)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 92334번: μ‹ κ³  κ²°κ³Ό λ°›κΈ° (JAVA)
Lily πŸ‘©‍πŸ’»
Lily πŸ‘©‍πŸ’»
  • Lily πŸ‘©‍πŸ’»
    proLOGue
    Lily πŸ‘©‍πŸ’»
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (11)
      • 일상 (0)
        • .txt (0)
        • 필사 (0)
        • μ‹œμ‚¬ (0)
        • 리뷰 (0)
        • μ—¬ν–‰ (0)
      • 개발 (11)
        • Algorithm (5)
        • IDE (2)
        • MSA (0)
        • Design Pattern (0)
        • Cloud Native (1)
        • Database (0)
        • Security (0)
        • Trouble Shooting πŸš€ (1)
        • Frontend (0)
        • Etc. (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • λ°©λͺ…둝
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    CLI
    websquare
    AWS
    GitAction
    바인딩
    ArrayList
    Kubernetes
    동적할당
    κ·Έλ¦¬λ“œ
    ν•΅μ‹¬λ§Œ 콕! μΏ λ²„λ„€ν‹°μŠ€
    selecteddata
    java
    μ›ΉμŠ€ν€˜μ–΄
    docker
    μΏ λ²„λ„€ν‹°μŠ€
    도컀
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
Lily πŸ‘©‍πŸ’»
[λ°±μ€€/BOJ] 15953번: μƒκΈˆ ν—Œν„° (JAVA)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”