2021년 7월 16일 금요일 - 엄청 덥다아..
오늘 올려볼 문제는 15904번 UCPC는 무엇의 약자일까? 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘은 백준을 둘러보다가 재밌어보이는 실버 문제를 가져왔다!몇 없는 설명이 재밌는 문제
문자열 하나를 입력 받아서 이 문자열을 UCPC라는 약자로 줄일 수 있는지 판단하는 것이 이 문제다!
입력 예제
입력 예제만 봐도 문제에 대한 감이 딱 잡힌다!!
풀이 및 코드
설명이 매우 긴 것에 비해서는 매우 간단한 문제이다.
그저 문자열을 문자 하나하나씩 비교해가면서 UCPC라는 문자를 순서대로 가지고 있는지만 판별하면 되기 때문이다.
말로 설명하는 것 보다는 바로 코드를 통해서 설명하는 것이 더 빠를 것 같다!
풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 문자열이 UCPC 순서를 지키면서 UCPC 문자를 포함하는지 확인하기 위한 index, compare배열을 위해 사용된다.
int index = 0;
// UCPC를 저장하고 있는 배열, 문자열의 문자와 비교할 때 사용된다.
// 0이 포함되어 있는 것은 입력으로 숫자는 들어오지 않는다고 했으므로 배열의 끝을 표현하기 위한 것이라고 생각하면 된다.
char[] compare = {'U', 'C', 'P', 'C', '0'};
String input = br.readLine();
for(int i = 0; i < input.length(); i++)
{
// 만약 문자열의 문자가 index 부분 compare의 값과 같다면
// index 값을 1 증가시킨다.
if(input.charAt(i) == compare[index])
index++;
}
// 만약 index가 4 (compare에서 0)라면 모든 순서를 지키고 UCPC 문자도 포함하고 있는 것이므로 약자로 만들 수 있는 것이다.
if(index == 4)
bw.write("I love UCPC");
// 아니라면 약자로 만들 수 없는 것이다.
else
bw.write("I hate UCPC");
bw.flush();
}
}
제출 화면
매일 블로그에 포스팅 하지는 않겠지만, 오늘은 좀 쉬운 문제로 쉬어가듯이 포스팅해봤다.
워낙 쉬운 문제이기 때문에 보러올 사람은 거의 없겠지만... 그래도 알고리즘 공부를 처음 해보는 사람들에게는 유용한 포스팅이었으면 좋겠다!
'백준 문제 풀이' 카테고리의 다른 글
[BOJ / 백준] 백준 1043번 문제를 풀어보았다. (ft. Java) (0) | 2021.07.26 |
---|---|
[BOJ / 백준] 백준 1987번 문제를 풀어보았다. (ft. Java) (0) | 2021.07.24 |
[BOJ / 백준] 백준 2578번 문제를 풀어보았다. (ft. Java) (0) | 2021.07.21 |
[BOJ / 백준] 백준 2243번 문제를 풀어보았다. (ft. Java) (0) | 2021.07.16 |
[BOJ / 백준] 백준 1103번 문제를 풀어보았다. (ft. Java) (0) | 2021.07.16 |