Code.Dev_MH
DevMHK
Code.Dev_MH
전체 방문자
오늘
어제
  • 개발자의 일상 (40)
    • Language (5)
      • Java (4)
      • Kotlin (1)
      • Python (0)
    • Back-End (1)
      • Spring (1)
      • Django (0)
      • Error (0)
    • Infra (0)
      • Docker (0)
      • CI, CD (0)
      • AWS (0)
    • CS (12)
      • 컴퓨터 구조(Computer Architectur.. (12)
      • 운영 체제(OS) (0)
      • 시스템소프트웨어(SystemSoftware) (0)
      • 네트워크(Network) (0)
      • 소프트웨어공학(Software Engineerin.. (0)
      • 데이터베이스(DataBase) (0)
      • 자료구조(Data Structure) (0)
      • 알고리즘(Algorithm) (0)
    • Git (0)
    • Algorithm (21)
      • 프로그래머스 (5)
      • 백준 (16)
      • 코딩테스트 후기 (0)
    • 회고 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 제로베이스백엔드스쿨
  • Greedy
  • 프로그래머스
  • INT
  • java
  • dp
  • 그리디
  • 컴퓨터구조
  • Priority Queue
  • 코틀린장점
  • 자바와비교
  • 너비우선탐색
  • cs
  • 다이나믹프로그래밍
  • 브루트포스
  • 백준
  • BFS
  • 우선순위 큐
  • computer architecture
  • 코틀린사용이유

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Code.Dev_MH

DevMHK

[백준_15904] UCPC는 무엇의 약자일까?
Algorithm/백준

[백준_15904] UCPC는 무엇의 약자일까?

2023. 1. 6. 12:00

문제

백준 15904번
https://www.acmicpc.net/problem/15904

UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만, 아무도 정확한 답을 제시해주지 못했다. ntopia가 들은 몇 가지 답을 아래에 적어보았다.

  • Union of Computer Programming Contest club contest
  • Union of Computer Programming contest Club contest
  • Union of Computer Programming contest club Contest
  • Union of Collegiate Programming Contest club contest
  • Union of Collegiate Programming contest Club contest
  • Union of Collegiate Programming contest club Contest
  • University Computer Programming Contest
  • University Computer Programming Club contest
  • University Computer Programming club Contest
  • University Collegiate Programming Contest
  • University CPC
    ...
    ntopia는 이렇게 다양한 답을 듣고는 UCPC가 무엇의 약자인지는 아무도 모른다고 결론내렸다. 적당히 슥삭해서 UCPC를 남길 수 있으면 모두 UCPC의 약자인 것이다!

문자열이 주어지면 이 문자열을 적절히 축약해서 "UCPC"로 만들 수 있는지 확인하는 프로그램을 만들어보자.

축약이라는 것은 문자열에서 임의의 문자들을 제거하는 행동을 뜻한다. 예를 들면, "apple"에서 a와 e를 지워 "ppl"로 만들 수 있고, "University Computer Programming Contest"에서 공백과 소문자를 모두 지워 "UCPC"로 만들 수 있다.

문자열을 비교할 때는 대소문자를 구분해 정확히 비교한다. 예를 들어 "UCPC"와 "UCpC"는 다른 문자열이다. 따라서 "University Computer programming Contest"를 "UCPC"로 축약할 수 있는 방법은 없다.

첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 경우도 없다.

첫 번째 줄에 입력으로 주어진 문자열을 적절히 축약해 "UCPC"로 만들 수 있으면 "I love UCPC"를 출력하고, 만들 수 없으면 "I hate UCPC"를 출력한다.

Code

  • "UCPC"라는 문자열을 생성한다.
    • 문자열이 아닌 Character로 'U', 'C', 'P', 'C'로 생성해도 좋다.
  • UCPC 인덱스 위치를 파악할 i를 0으로 초기화한다.
  • for문으로 str을 문자로 잘라 UCPC문자와 같은지 비교하면서 같을 때만 i를 증가시켜준다.
  • i가 4가 되었을 땐 이미 UCPC를 만들 수 있다는 의미이기 때문에 "I love UCPC"를 출력한다.
  • 만약 for문을 통해 str문자 끝까지 도달했음에도 i가 4가 되지 못한다면 "I hate UCPC"를 출력한다.

Java

import java.util.*;
import java.io.*;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 받을 문자열
        String str = br.readLine();
        String UCPC = "UCPC";
        int i = 0;
        for(char c: str.toCharArray()) { // 문자열을 문자로 쪼개어 비교
            if (c == UCPC.charAt(i)) { // UCPC의 문자와 같을 경우
                i++;
            }
            if (i == 4) { // UCPC 문자열을 끝까지 도달했을 경우
                System.out.println("I love UCPC");
                return;
            }
        }
        // for문을 다 돌았음에도 UCPC가 만들어지지 않은 경우
        System.out.println("I hate UCPC");
    }
}
반응형

'Algorithm > 백준' 카테고리의 다른 글

[백준_1041] 주사위  (0) 2023.01.12
[백준_14235] 크리스마스 선물  (0) 2023.01.08
[백준_1260] DFS와 BFS  (0) 2023.01.05
[백준_1254] 팰린드롬 만들기  (0) 2023.01.03
[백준_2075] N번째 큰 수  (1) 2023.01.01
    'Algorithm/백준' 카테고리의 다른 글
    • [백준_1041] 주사위
    • [백준_14235] 크리스마스 선물
    • [백준_1260] DFS와 BFS
    • [백준_1254] 팰린드롬 만들기
    Code.Dev_MH
    Code.Dev_MH
    Back-End 개발자가 되기 위한 개발 노트(Java)

    티스토리툴바