곽로그

[백준 11721] 열 개씩 끊어 출력하기 본문

알고리즘/백준

[백준 11721] 열 개씩 끊어 출력하기

일도이동 2019. 4. 16. 20:09
반응형

 

 

11721번: 열 개씩 끊어 출력하기

첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.

www.acmicpc.net

첫번째 접근(잘못된 접근법)

 

 10개씩 끊어서 출력한다고 해서 배열을 생각했다. String으로 입력받은다음 for문을 이용해 index가 9로 나누어 떨어지면 개행을 해라라는 로직이다. 

 

1)words변수에 String을 입력받는다

2) for문 i=0, i<words.length();, i++

3) 출력을 한다

4) 만약 i가 9로 나누어 떨어지면 개행을 한다. 

 

코드는 다음과 같다. 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		String words=in.nextLine();
		for(int i=0;i<words.length();i++) {
			System.out.print(words.charAt(i));
			if(i==0) {
				continue;
			}
			if(i%9==0) {
				System.out.println();
			}
		}
		
	}
}
 	

여기에 01234567890123456789를 입력하면 다음과 같이 출력이 된다. 

두번째 줄을 보면 8까지, 즉 8개가 출력이 되는데, 이유는 18또한 9로 나누어 떨어지기 때문이다. 위의 로직을 사용한다면 9개가 출력이 되는게 아니라 9의 배수에서 개행이 이루어 진다. 

 

두번째 접근법

 

 그러면 9개에 대한 것을 어떻게 표시해야할까. 하나를 출력할때 마다 count를 하나씩 증가시키고 count가 10이 되면 개행을 하면된다. 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		String words=in.nextLine();
		int count=0;
		for(int i=0;i<words.length();i++) {
			System.out.print(words.charAt(i));
			count++;
			if(count==10) {
				System.out.println();
				count=0;
			}
		}
		
	}
}
 	

 

 

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 10871] X보다 작은 수  (0) 2019.04.17
[백준 10817] 세 수  (0) 2019.04.16
[백준 11720] 숫자의 합  (0) 2019.04.15
[백준 8393] 합  (0) 2019.04.15
[백준 1924] 2007년  (0) 2019.04.09
Comments