import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
}
}
문제 설명
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
제한사항
1.<= str의 길이 <= 1,000,000
str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
입출력 예
입력 #1 HelloWorld! / 출력 #1 HelloWorld!
처음에 이 문제를 봤을땐 이게 대체 뭔소리지..? 라는 생각을 했다.
문자열 str이 주어진다는건 String str 이 주어진다는 소리고, str을 출력하라고 했으니 System.out.println()을 사용하면 되는 쉬운 문제 같았다.
어.. 그래서 이렇게 입력했다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String str = "HelloWorld!";
System.out.println(str);
}
}
당연히 결과는 HelloWorld! 가 나온다.
하지만 이 문제에서 입출력 예를 보면 입력 출력이 있다.
그렇다면 주어진 코드에서 Scanner를 활용하여 입력 출력을 하라는 의미인데, 그렇다면 입력받을 때 문자열로 받으라는 의미고?
문자열 str이라고 했으니까 String str = sc.next();이면 되지 않을까?
왜냐하면 String a = sc.next(); 가 주어졌으니 거 코드만 바꾸면 될 것 같았다.
그런데 여기서 떠오르지 않은게 있었다. nextLine()이 String형을 입력받는데, next()는 nextInt()와 연관이 있는가? nextLine()과 연관이 있는가?
next()는 String형 한 단어를 읽어서 입출력 하는 메서드이고, nextLine()은 개행을 기준으로 한 줄을 읽는다고 한다.
따라서 HelloWorld! 는 한 단어로 취급된다. 공백이 없기 때문이다.
그대로 쓴다면 String str = sc.next();를 사용해도 된다.
그 다음은 출력을 해야하는데, Scanner라고 해도 우리가 콘솔에 입력하는게 아니라 str을 출력하는 코드를 작성해야 하므로?
System.out.println(str) 이 맞는 선택 같았다.
그런데 제한사항에 str.length가 주어졌는데, 저게 의미가 있을까? 라는 생각이 들었다.
그래도 제한사항이 있긴 하니까 최소한의 조건문은 달아보기로 했다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
if(true) {
System.out.println(str);
}
}
}
결과적으로 잘 출력이 되었다.
* 조건문에 true를 썼기 때문에 의미없는 조건문이라는건 잘 알고 있었다.
다른 사람들이 작성한 코드를 살펴보는데, 굉장히 깔끔하게 푼게 있어서 참고한다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(str);
sc.close();
}
}
Scanner를 close하는 메서드를 사용하여 깔끔하게 끝낸 모습.
'코딩테스트' 카테고리의 다른 글
| 특수문자 출력하기 LV.0 (0) | 2025.06.04 |
|---|---|
| 대소문자 바꿔서 출력하기 LV.0 (0) | 2025.06.03 |
| 문자열 반복해서 출력하기 LV.0 (0) | 2025.06.02 |
| a와 b 출력하기 LV.0 (0) | 2025.06.02 |
| [PCCE 기출문제] 1번 / 문자 출력 LV.0 (0) | 2025.06.01 |