티스토리 뷰
핵심
무조건 이기려면 상대방이 같은 거 낼 경우밖에 없다.
그러므로 조건문을 다양하게 사용해서 분기 처리해줬다.
반례로 R R S R를 통해 비기는 경우까지 확인해주어 문제를 해결하였다.
import java.io.*;
import java.util.*;
class Main {
static Map<String, String> winMap = new HashMap<>();
static final String DRAW = "DRAW";
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
winMap.put("P", "R");
winMap.put("R", "S");
winMap.put("S", "P");
String ms1 = st.nextToken();
String ms2 = st.nextToken();
String tk1 = st.nextToken();
String tk2 = st.nextToken();
String ms1Vstk1 = whoWin(ms1, tk1);
String ms1Vstk2 = whoWin(ms1, tk2);
String ms2Vstk1 = whoWin(ms2, tk1);
String ms2Vstk2 = whoWin(ms2, tk2);
if (ms1.equals(ms2) && tk1.equals(tk2) && ms1.equals(tk1)) {
System.out.println("?");
return;
}
if (ms1.equals(ms2)) {
if (ms1Vstk1.equals("TK") || ms1Vstk2.equals("TK")) {
System.out.println("TK");
} else if(ms1Vstk1.equals("DRAW") || ms1Vstk2.equals("DRAW")){
System.out.println("?");
} else {
System.out.println("MS");
}
return;
}
if (tk1.equals(tk2)) {
if (ms1Vstk1.equals("MS") || ms2Vstk1.equals("MS")) {
System.out.println("MS");
} else if (ms1Vstk1.equals("DRAW") || ms2Vstk1.equals("DRAW")) {
System.out.println("?");
} else {
System.out.println("TK");
}
return;
}
System.out.println("?");
}
private static String whoWin(String ms, String tk) {
String msWin = winMap.get(ms);
String tkWin = winMap.get(tk);
if (msWin.equals(tk)) {
return "MS";
}
if (tkWin.equals(ms)) {
return "TK";
}
return DRAW;
}
}
'알고리즘' 카테고리의 다른 글
BOJ17413 단어 뒤집기 2 java (0) | 2022.02.16 |
---|---|
BOJ16956 늑대와 양 java (0) | 2022.02.16 |
BOJ14620 꽃길 java (0) | 2022.02.14 |
BOJ10539 수빈이와 수열 java (0) | 2022.02.13 |
BOJ1987 알파벳 java (0) | 2022.02.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JPA
- 클린 코드
- kkoon9
- programmers
- AWS
- 정규표현식
- Olympiad
- 테라폼
- 디자인패턴
- Spring Boot
- BOJ
- 코테
- 백준
- kotest
- Java
- MSA
- BAEKJOON
- node.js
- 알고리즘
- Algorithm
- Spring
- 클린 아키텍처
- Kotlin
- 프로그래머스
- 이펙티브 자바
- 이팩티브 자바
- 객체지향
- 디자인 패턴
- Effective Java
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함