λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm

[Codeforces] 1097A: Gennady and a Card Game(brute force)

by 주발2 2020. 2. 21.
λ°˜μ‘ν˜•

https://codeforces.com/problemset/problem/1097/A

 

Problem - 1097A - Codeforces

 

codeforces.com

문제

GennadyλŠ” μ‹œκ³¨μ— κ·Έκ°€ ν‰ν™”λ‘œμš΄ 삢을 μ‚¬λŠ” μž‘μ€ ν˜Έν…”μ„ μ†Œμœ ν•˜κ³  μžˆλ‹€. κ·ΈλŠ” 그의 ν˜Έν…”μ— λ¬΅λŠ” 관광객듀과 ν•¨κ»˜ κΈ΄ 산책을 ν•˜κ³ , μΌκ΄‘μš•μ„ ν•˜κ³ , μΉ΄λ“œλ†€μ΄λ₯Ό ν•˜λŠ” 것을 μ’‹μ•„ν•œλ‹€. κ·Έκ°€ κ°€μž₯ μ’‹μ•„ν•˜λŠ” κ²Œμž„μ€ "마우마우"이닀.

마우마우 κ²Œμž„μ„ ν•˜λ €λ©΄ 52μž₯의 μΉ΄λ“œκ°€ ν•„μš”ν•˜λ‹€. 각 μΉ΄λ“œμ—λŠ” suit(닀이아λͺ¬λ“œ — D, 클럽 — C, μŠ€νŽ˜μ΄λ“œ — S, λ˜λŠ” ν•˜νŠΈ H H)κ³Ό rank(2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A)이 μžˆλ‹€.

κ²Œμž„μ΄ μ‹œμž‘λ  λ•Œ, ν…Œμ΄λΈ” μœ„μ— ν•˜λ‚˜μ˜ μΉ΄λ“œκ°€ 있고 당신은 λ‹Ήμ‹ μ˜ 손에 5개의 μΉ΄λ“œκ°€ μžˆλ‹€. ν…Œμ΄λΈ” μœ„μ˜ μΉ΄λ“œμ™€ λ™μΌν•œ λ“±κΈ‰ λ˜λŠ” μ •μž₯을 가진 κ²½μš°μ—λ§Œ μ†μ—μ„œ μΉ΄λ“œλ₯Ό μž¬μƒν•  수 μžˆλ‹€.

당신이 쒋은 νŒŒνŠΈλ„ˆκ°€ 될지 ν™•μΈν•˜κΈ° μœ„ν•΄, κ²λ‚˜λ””λŠ” 당신을 μœ„ν•΄ 과제λ₯Ό μ€€λΉ„ν–ˆλ‹€. ν…Œμ΄λΈ” μœ„μ— μžˆλŠ” μΉ΄λ“œμ™€ 손에 λ“  λ‹€μ„― μž₯의 μΉ΄λ“œλ₯Ό κ³ λ €ν•  λ•Œ, 적어도 ν•œ 개의 μΉ΄λ“œλ₯Ό ν”Œλ ˆμ΄ν•  수 μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

μž…λ ₯
μž…λ ₯의 첫 번째 쀄은 ν‘œμ— μΉ΄λ“œλ₯Ό μ„€λͺ…ν•˜λŠ” ν•˜λ‚˜μ˜ λ¬Έμžμ—΄μ„ ν¬ν•¨ν•œλ‹€. 두 번째 쀄은 λ‹Ήμ‹ μ˜ 손에 μžˆλŠ” μΉ΄λ“œλ₯Ό λ¬˜μ‚¬ν•˜λŠ” λ‹€μ„― 개의 쀄을 ν¬ν•¨ν•œλ‹€.

각 λ¬Έμžμ—΄μ˜ κΈΈμ΄λŠ” 두 μžμ΄λ‹€. 첫 번째 λ¬ΈμžλŠ” μˆœμœ„λ₯Ό λ‚˜νƒ€λ‚΄λ©° 집합 {2,3,4,5,6,7,8,9,T,J,Q,K,A}에 μ†ν•œλ‹€. 두 번째 λ¬ΈμžλŠ” 슈트λ₯Ό λ‚˜νƒ€λ‚΄λ©° 집합 {D,C,S,H}에 μ†ν•œλ‹€.

μž…λ ₯된 μΉ΄λ“œλŠ” λͺ¨λ‘ λ‹€λ₯΄λ‹€.

좜λ ₯
λ§Œμ•½ λ‹Ήμ‹ μ˜ μ†μ—μ„œ μΉ΄λ“œλ₯Ό μž¬μƒν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€λ©΄, "YES"λΌλŠ” 단어λ₯Ό ν•œ 개 μΈμ‡„ν•˜μ‹œμ˜€. 그렇지 μ•ŠμœΌλ©΄ "NO"λ₯Ό μΈμ‡„ν•œλ‹€.

각 κΈ€μžλŠ” μ–΄λ–€ κ²½μš°μ—λ„ 인쇄할 수 μžˆλ‹€(상단 λ˜λŠ” ν•˜λ‹¨).

 

Note

첫 번째 μ˜ˆμ—μ„œλŠ” ν…Œμ΄λΈ” μœ„μ— Ace of Spades(AS)κ°€ μžˆλ‹€. Ace of Diamonds(AD)λ₯Ό λ‘˜ λ‹€ μ—μ΄μŠ€(Ace of Diamonds)이기 λ•Œλ¬Έμ— μ—°μ£Όν•  수 μžˆλ‹€.

두 번째 μ˜ˆμ—μ„œλŠ” μ–΄λ–€ μΉ΄λ“œλ„ μ‚¬μš©ν•  수 μ—†λ‹€.

μ„Έ 번째 μ˜ˆμ—μ„œλŠ” Ace of Diamonds (AD)λ₯Ό μ—°μ£Όν•  수 μžˆλŠ”λ°, μ΄λŠ” ν…Œμ΄λΈ” μœ„μ— 놓여 μžˆλŠ” Four of Diamonds (4D)와 같은 suitλ₯Ό 가지고 있기 λ•Œλ¬Έμ΄λ‹€.

 


μ½”λ“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String checkCard = bf.readLine();	// 확인할 μΉ΄λ“œ	
		String[] card = new String[5];		// μž…λ ₯받을 5개 μΉ΄λ“œ
		String result = "NO";			// "YES" OR "NO" 좜λ ₯
		StringTokenizer st = new StringTokenizer(bf.readLine());
		
		for(int i=0; i<card.length; i++)
			card[i] = st.nextToken();
		
		for(int i=0; i<card.length; i++) {
			// rankλ‚˜ suitκ°€ λ™μΌν•œ 경우 => "YES"좜λ ₯
			if(checkCard.charAt(0) == card[i].charAt(0) || checkCard.charAt(1) == card[i].charAt(1)) {
				result = "YES";
				break;
			}
		}
		System.out.println(result);
		bf.close();
	}

}

풀이

λ²”μœ„κ°€ μ—„μ²­ μž‘κΈ° λ•Œλ¬Έμ— μž…λ ₯받은 첫번째 라인의 μΉ΄λ“œμ™€ κ°–κ³ μžˆλŠ” 5μž₯의 λͺ¨λ“  μΉ΄λ“œλ₯Ό 일일이 λΉ„κ΅ν•˜λŠ” μ™„μ „νƒμƒ‰μœΌλ‘œ ν’€λ©΄ λœλ‹€.

μž…λ ₯받은 suit, rank쀑 λ™μΌν•œ suitλ‚˜ rankκ°€ μžˆμ„κ²½μš° => YESλ₯Ό 좜λ ₯ν•˜κ³ , κ·Έ μ™ΈλŠ” NOλ₯Ό 좜λ ₯ν•˜λ©΄ λœλ‹€.

 

λ°˜μ‘ν˜•

λŒ“κΈ€