본문 바로가기
프론트엔드/알고리즘

자바 JAVA | 백준 10926번 ??! | Scanner 클래스를 활용한 사용자 입력 처리 방법

by YUNI Heo 2022. 9. 20.
반응형

 

https://www.acmicpc.net/problem/10926

 

10926번: ??!

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때

www.acmicpc.net

 

✅ 문제

  • 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 
  • 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.
  • 시간 제한: 1 초
  • 메모리 제한: 256 MB

 

💡 입력

  • 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 
  • 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다.

 

💡 출력

  • 첫째 줄에 준하의 놀람을 출력한다. 
  • 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다.

 

💡 예제 입력 1

joonas

 

💡 예제 출력 1

joonas??!

 

💡 예제 입력 2

baekjoon

 

💡 예제 출력 2

baekjoon??!

 

✅ 해결

💡 해결 계획

  1. 문자열을 입력받는다.
  2. 입력받은 문자열 뒤에 "??!"을 붙인 문자열을 생성한다.
  3. 생성한 문자열을 출력한다.

 

💡 코드 1 (성공)

시간 복잡도는 O(N)이다.

  • 시간 복잡도는 문자열의 길이에 비례한다. 
  • 입력받은 문자열을 저장하는 데는 O(N)의 시간이 소요된다.
  • 문자열 뒤에 "??!"를 붙여 출력하는 데는 O(1)의 시간이 소요된다.

 

Scanner 클래스를 이용하여 문자열을 입력받고, 입력받은 문자열 뒤에 "??!"를 붙인 뒤 System.out.println() 메서드를 이용하여 출력한다.

 

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in); // Scanner 객체 생성
        String str = sc.nextLine(); // 문자열 입력
        System.out.println(str + "??!"); // 입력한 문자열 뒤에 "??!"를 붙여 출력
    }
}

 

✅ 개념

💡 Scanner 클래스

Java에서 입력 스트림에서 다양한 데이터 유형을 읽어올 수 있는 클래스이다.
Scanner 객체를 생성하고 System.in을 매개변수로 전달하면 콘솔에서 사용자 입력을 읽어올 수 있다.

Scanner 클래스는 입력받는 데이터가 많을 경우 느려지는 문제가 있으므로, 대용량의 입력 데이터 처리에는 적합하지 않다.

반응형