Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/백준

[백준] 11718 그대로 출력하기 (설명/코드/정답)

_hyeri 2024. 7. 5. 00:05

 

문제 링크 : https://www.acmicpc.net/problem/11718

 

 

 

 

 

 

1. 요구 사항 이해

시간, 메모리 제한 : 1초 / 256MB

 

몇줄에 걸쳐 입력 받은 대로 출력하는 프로그램 작성

입력은 최대 100줄

알파벳 소문자, 대문자, 공백, 숫자로만 이루어짐

각 줄은 100글자 넘지x

 

 

 

2. 설계/검증 


함수화

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
		
        // 최대 100줄 입력 처리
        while (scan.hasNextLine()) {
            String inputLine = scan.nextLine();
            // 입력받은 줄의 길이는 100이 넘지 않는 유효성 검사
            System.out.println(inputLine);
        }
        scan.close();
    }
}

 

복잡도

시간 복잡도  최악의 경우  공간 복잡도
O(1)   O(1)

 

각 줄을 한 번씩 처리하므로 입력줄의 수 n O(n) 최대 100줄이므로 O(100) == O(1) 시간 복잡도는 O(1)

 

입력 문자열과 몇 개의 정수 변수만 사용하므로 공간 복잡도는 O(1)  

 

 

 

 

3. 정상 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        //입력을 위한 객체 생성
        Scanner scan = new Scanner(System.in);

        // 최대 100줄 입력 처리
        int maxLineCount = 0;
        while (scan.hasNextLine() && maxLineCount < 100) {
            String s = scan.nextLine();
            // 유효성 검사
            if (s.length() > 100) {
                System.out.println("100글자를 넘은 줄");
                return;
            }
            System.out.println(s);
            maxLineCount++;
        }
        scan.close();
    }
}

 

 

 

 

 

 

추가 정리

 

 

scan.hasNextLine()

입력이 존재하는 경우. 

scan.hasNextLine()은 입력이 존재하지 않아 false를 반환하여 while 루프가 종료됨