๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 9517๋ฒˆ: ์•„์ด ๋Ÿฌ๋ธŒ ํฌ๋กœ์•„ํ‹ฐ์•„

by ์ฃผ๋ฐœ2 2020. 5. 12.
๋ฐ˜์‘ํ˜•

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

 

9517๋ฒˆ: ์•„์ด ๋Ÿฌ๋ธŒ ํฌ๋กœ์•„ํ‹ฐ์•„

๋ฌธ์ œ "I love Croatia"๋Š” ๋„ค๋ธ๋ž€๋“œ์˜ ์ธ๊ธฐ ํ‹ฐ๋น„ ํ”„๋กœ๊ทธ๋žจ "I love my country"์˜ ํฌ๋งท ๋ผ์ด์„ผ์Šค๋ฅผ ์ˆ˜์ž…ํ•ด ๋งŒ๋“  ํฌ๋กœ์•„ํ‹ฐ์•„์˜ ํ‹ฐ๋น„์‡ผ์ด๋‹ค. ์ด ํ‹ฐ๋น„์‡ผ์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ๊ฒŒ์ž„์€ "Happy Birthday"์ด๋ฉฐ, ์ด ๊ฒŒ์ž„์—

www.acmicpc.net

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int K = scan.nextInt();	// ํญํƒ„ ๋“ค๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ ๋ฒˆํ˜ธ
		int N = scan.nextInt();	// ์งˆ๋ฌธ์˜ ๊ฐœ์ˆ˜
		int[] arr = new int[N];
		char[] cArr = new char[N];
		int time = 0;	// ์ด ์‹œ๊ฐ„
		
		scan.nextLine();
		
		// ๊ฐ ์งˆ๋ฌธ ๋Œ€๋‹ต ์‹œ๊ฐ„, ๋Œ€๋‹ต ์ž…๋ ฅ๋ฐ›๊ธฐ
		for(int i=0; i<N; i++) {
			String str = scan.nextLine();
			String[] sArr = str.split(" ");
			arr[i] = Integer.parseInt(sArr[0]);
			cArr[i] = sArr[1].charAt(0);
		}
		
		for(int i=0; i<N; i++) {
			time += arr[i];
			if(time >= 210)	break;		// 210์ดˆ ์ง€๋‚ ๊ฒฝ์šฐ ํญํƒ„ ํ„ฐ์ง
			if(cArr[i] == 'T')	K += 1;	// ๋Œ€๋‹ต์ด ์ •๋‹ต์ธ๊ฒฝ์šฐ: ํญํƒ„ ์™ผ์ชฝ์œผ๋กœ ์ด๋™
			if(K > 8)	K = 1;			// 8๋ฒˆ ์‚ฌ๋žŒ -> 1๋ฒˆ ์‚ฌ๋žŒ์—๊ฒŒ ํญํƒ„ ์ „๋‹ฌ
		}
		
		System.out.println(K);
		scan.close();

	}

}

ํ’€์ด

๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

   - 3๋ถ„ 30์ดˆ(210์ดˆ) ๊ฐ€ ์ง€๋‚˜๋ฉด ํญํƒ„์ด ํ„ฐ์ง„๋‹ค.

   - ๋Œ€๋‹ต์ด ์ •๋‹ต(T) ์ธ ๊ฒฝ์šฐ ํญํƒ„์„ ์™ผ์ชฝ์œผ๋กœ, ์˜ค๋‹ต(N) ์ด๊ฑฐ๋‚˜ ์Šคํ‚ต(P)์ธ ๊ฒฝ์šฐ ๋‹ค์Œ ์งˆ๋ฌธ์„ ๋ฐ›๋Š”๋‹ค.

      -> ์ •๋‹ต์ธ ๊ฒฝ์šฐ๋งŒ ํญํƒ„์„ ์™ผ์ชฝ์œผ๋กœ ์˜ฎ๊ฒจ์ฃผ๋ฉด ๋œ๋‹ค. (1->2 , 2->3 ... )

   - 8๋ฒˆ ์‚ฌ๋žŒ์—๊ฒŒ ํญํƒ„์ด ์žˆ๊ณ , ๋‹ค์Œ ์ „๋‹ฌํ•ด์•ผํ•  ๊ฒฝ์šฐ -> 1๋ฒˆ ์‚ฌ๋žŒ์—๊ฒŒ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํญํƒ„ ๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€