문제 링크 : 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 루프가 종료됨
'◖코딩 테스트◗▬▬▬▬▬▬▬▬▬ > 백준' 카테고리의 다른 글
[백준] 10871 X보다 작은 수 (설명/코드/정답) (0) | 2024.08.08 |
---|---|
[백준] 10807 개수 세기 (설명/코드/정답) (0) | 2024.08.07 |
[백준] 5622 다이얼 (설명/코드/정답) (0) | 2024.07.02 |
[백준] 2908 상수 (설명/코드/정답) (0) | 2024.06.24 |
[백준] 1152 단어의 개수 (설명/코드/정답) (0) | 2024.06.18 |