문제 출처 : 프로그래머스
문제 설명.
문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
제한사항
1<=str의 길이<=10
1<=n<=5
import java.util.Scanner;
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
public static void main(String[] args) {
String str;
int n = 0;
System.out.println("정수값을 1부터 5까지 입력해주세요.");
Scanner scnInt = new Scanner(System.in);
n = scnInt.nextInt();
while (n <= 1 || n >= 6) {
System.out.println("정수값을 제대로 다시 입력 해주세요.");
n = scnInt.nextInt();
}
Scanner scnStr = new Scanner(System.in);
System.out.print("문자열을 10자 내로 적어주세요.");
str = scnStr.nextLine();
if (str.length() >= 1 && str.length() <= 10) {
for (int i=0;i<n; i++) {
System.out.print(str);
}
}else {
System.out.print("문자열을 잘못 입력하셨습니다.문자열을 10자 내로 적어주세요.");
}
}
}
위에 정수n을 입력받을 때 1~5까지 제대로된 값을 입력하지 않을 때 while문을 이용하여 제대로된 값을 입력할 때까지 무한반복 시키는 방식으로 코드를 짰다.
이와 마찬가지로 문자열 str의 길이가 1~10까지 값을 제대로 넣을 때까지 코드를 짜려고 했으나 이상하게 작동이 잘 되지 않아 이대로 마무리.
오늘은 마치고 내일이나 모레안에 str입력부도 다시 코딩 해봐야겠다.
수정)
진짜 바보같다 좀만더 생각하면 바로 풀리는걸 미룰려다가 그냥 끝내고 자자하고 다시봤더니 바로 풀려버렸다.
import java.util.Scanner;
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
public static void main(String[] args) {
String str;
int n = 0;
System.out.println("정수값을 1부터 5까지 입력해주세요."); //문제 제한사항 안내 메세지
Scanner scnInt = new Scanner(System.in);
n = scnInt.nextInt(); // n값 입력
while (n < 1 || n >= 6) { // 입력값이 음수 혹은 0, 6이상의 값들은 제한사항에 걸리니 걸러주는 반복문
System.out.println("정수값을 제대로 다시 입력 해주세요.");
n = scnInt.nextInt(); // 조건에 맞지 안았을 경우 다시 n값을 입력받음 이때 while을통해 제대로된 값을 받을 때까지 무한 반복.
}
System.out.print("문자열을 10자 내로 적어주세요."); //문제 제한사항 안내 메시지
Scanner scnStr = new Scanner(System.in);
str = scnStr.nextLine(); // str값 입력
while (str.length() <= 1 || str.length() >= 10) {// 입력받은 문자열의 길이가 0혹은 10이상의 값들은 제한사항에 걸리니 걸러주는 반복문
System.out.print("문자열을 잘못 입력하셨습니다.문자열을 10자 내로 적어주세요.");
str = scnStr.nextLine(); // 잘못 입력된 문자열을 다시 받기 위해.
}
for (int i = 0; i<n; i++) {
System.out.print(str);
}
}
}
while 조건문이 한번에 눈에 들어오지 않는것 같다. 더 직관적인 방식이 없을까 생각해보자.
'공부 > 예제 풀이' 카테고리의 다른 글
백준 1427번(실패) (0) | 2023.10.18 |
---|---|
백준 10814번 (실패) (0) | 2023.10.18 |
계산기 프로그래밍 (0) | 2023.10.17 |
2주차 숙제 (0) | 2023.10.14 |
1주차 숙제. (1) | 2023.10.12 |