-
[백준 - 15904번] UCPC는 무엇의 약자일까? - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 25. 18:27
이번에는 BOJ의 15904번 문제 "UCPC는 무엇의 약자일까?" 에 대해서 풀어보도록 하자. (참고로, UCPC는 전국 대학생 프로그래밍 대회)이다. 문제 자체는 매우 간단하다. 입력으로, 문자열이 주어지고, 이 문자열에 UCPC가 차례대로 들어있어서 UCPC를 축약해서 만들 수 있는지 판별해 내는 문제이다. 만약, UCPC를 축약해서 만들 수 있으면, "I love UCPC"를 그렇지 않다면, "I hate UCPC"를 출력해주면 된다. 일단, 이 문제를 푸는데, 아래와 같이 노가다를 해서 한 조건문으로 판별할 수 있게 만들었다.
if ((line.charAt(i) == 'U' && ans.equals("")) || (line.charAt(i) == 'C' && ans.equals("U")) || (line.charAt(i) == 'P' && ans.equals("UC")) || (line.charAt(i) == 'C' && ans.equals("UCP")))
이렇게 조건문을 통과한 정답이 UCPC이면 반복문으로 문자열을 돌리는 것을 멈추고, "I love UCPC" 를 출력하도록 해주었다. 만약에, 문자열을 다 돌려봤는데, ans가 UCPC가 아닐경우, "I hate UCPC"를 출력해 주었다.
성공한 코드는 아래와 같다.
import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String line = br.readLine(); String ans = ""; for (int i = 0; i < line.length(); i++) { if ((line.charAt(i) == 'U' && ans.equals("")) || (line.charAt(i) == 'C' && ans.equals("U")) || (line.charAt(i) == 'P' && ans.equals("UC")) || (line.charAt(i) == 'C' && ans.equals("UCP"))) ans += line.charAt(i); if (ans.equals("UCPC")) break; } if (ans.equals("UCPC")) bw.write("I love UCPC\n"); else bw.write("I hate UCPC\n"); bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/15904
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 1708번] 볼록 껍질 - Java //Wello Horld// (1) 2019.07.26 [백준 - 2261번] 가장 가까운 두 점 - Java //Wello Horld// (0) 2019.07.25 [백준 - 2166번] 다각형의 면적 - Java //Wello Horld// (0) 2019.07.25 [백준 - 1915번] 가장 큰 정사각형 - Java //Wello Horld// (0) 2019.07.25 [백준 - 1016번] 제곱 ㄴㄴ수 - Java //Wello Horld// (0) 2019.07.23