[백준] 16171 나는 친구가 적다 (Small) JAVA

혅·2024년 3월 8일

1일1백준 -Java-

목록 보기
55/60

문제

친구가 적은 성민이는 수업에 결석해도 시험이나 과제에 대한 정보를 제대로 얻을 수 없었다. F 학점을 받을 위기까지 아슬아슬하게 결석일 수를 유지하던 성민이는, 어느 날 갑자기 영문도 모른 채 쪽지시험을 보게 되었다!

갑작스러운 쪽지 시험으로 마음이 급해진 성민이는 매직아이를 사용해 벼락치기를 하기로 한다.

성민이가 듣는 과목의 교과서는, 알파벳 소문자(a-z)와 알파벳 대문자(A-Z)로만 이루어져 있다. 성민이가 교과서에서 찾고자 하는 키워드도 역시 알파벳 소문자와 대문자로만 이루어져 있다. 하지만, 성민이에겐 큰 문제가 생겼다. 결석한 날의 수업 내용을 친구에게 빌려 필기를 하던 중, 교과서에 숫자(0-9)를 적어버린 것이다.

키워드를 찾기 힘들어 패닉에 빠진 성민이는 몇 안 되는 친구인 당신에게 도움을 요청했다. 성민이를 도와, 교과서에서 성민이가 찾고자 하는 키워드의 존재 여부를 알려주자.

입력

첫 번째 줄에는 알파벳 소문자, 대문자, 숫자로 이루어진 문자열 S가 주어진다. (1 ≤ |S| ≤ 100) 두 번째 줄에는 성민이가 찾고자 하는 알파벳 소문자, 대문자로만 이루어진 키워드 문자열 K가 주어진다. (1 ≤ |K| ≤ 100).

단, 입력으로 들어오는 키워드 문자열 K의 길이는, 교과서의 문자열 S보다 짧거나 같다.

출력

첫 번째 줄에 성민이가 찾고자 하는 키워드가 문자열 내에 존재하면 1, 존재하지 않으면 0을 출력한다.

예제 입력

1ovey0uS2
veS

예제 출력

0

내가 했던 풀이 방법

  1. 입력받은 첫 번째 줄을 0부터 length-1까지 for문을 돌리면서, 만약 아스키코드 값이 65보다 작을 경우를 제외하고는 모두 StringBuffer에 추가해준다. (숫자, 영어만 입력되고 있고 우리는 숫자만 무시해주면 되기 때문)
  2. 입력받은 StringBuffer를 String으로 변환해준다. (contains 함수를 사용하기 위해)
  3. contains 함수를 이용하여 keyword가 존재하는 경우 1, 아닌 경우 0을 출력해준다.

코드

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

public class Main {
        public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        String keyword = br.readLine();
        
        StringBuffer input_word = new StringBuffer(" "); 
        for(int i=0; i<input.length(); i++) {
            if(!(input.charAt(i)<65)) {
                input_word.append(input.charAt(i));
            }
        }

        String word = input_word.toString();
        if(word.contains(keyword)) {
            System.out.print(1);
        } else {
            System.out.print(0);
        }
    }
}

회고

변수명 설정도 좀 아쉽고, StringBuffer를 변환하지 않고 그냥 String을 사용하는 게 나았을까 싶긴한데 형변환이 객체를 계속 재생성하는 것보다 낫지 않을까.........라는 마음에 StringBuffer와 String을 같이 사용해봤다.
필수문제로 추천받은 것 중에 티어가 낮은 것부터 풀고있는데, 브론즈에 남은 문제들이 죄다 문자열이라 푸는 방식이 비슷비슷해진 것 같아서 실버로 옮겨야 하나 진지하게 고민을 해봐야겠다.

profile
Frontend🍓

0개의 댓글