728x90
https://www.acmicpc.net/problem/11721
전체 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
if(s.length()<=10){
System.out.println(s);
}else{
int n = s.length() / 10;
int n1 = s.length() % (n*10);
for(int i=0; i<n; i++){
System.out.println(s.substring(i*10,i*10+10));
}
if(n1 != 0){
System.out.println(s.substring(n*10,s.length()));
}
}
}
}
해설
입력은 Scanner로 받았습니다.
문자열을 입력 받습니다.
문자열이 10개 이하이면 나눌 필요가 없으니
바로 출력해줍니다.
substring을 사용하여 나눴습니다.
반복을 위한 n을 만들어 줍니다.
문자열의 개수가 36이면 36/10해서 n은 3이 됩니다.
3번 반복하게 됩니다.
만약 36인 문자열을 10단어로 끊어서 3번 반복하면
나머지 6글자에 대해서 출력을 더 해주어야 합니다.
그래서 6이라는 나머지 값을 얻어오기 위한 n1을 구합니다.
36 % (3*10) 이므로 6인 나머지가 구해집니다.
여기서 3번 반복 하면서 substring(start, end) 로 출력해줍니다.
start = i*10
end = i*10+10
즉 0일 경우 0,10
1일 경우 10, 20
2일 경우 20, 30
위에서 구한 n1(나머지 문자를 출력을 위함) 가 0이 아니면 출력해야 하므로
n*10으로 start를 잡아주고, 나머지를 s 문자열에 길이만큼 end를 잡아줍니다.
728x90
'알고리즘 with JAVA' 카테고리의 다른 글
백준 1427번 소트인사이드 - 자바 (0) | 2021.05.28 |
---|---|
백준 11719번 그대로 출력하기 2 - 자바 (0) | 2021.05.27 |
백준 9012번 괄호 - 자바 (스택 활용) (0) | 2021.05.21 |
백준 11718번 문제 그대로 출력하기 - with 자바 (0) | 2021.05.13 |
백준 1316번 그룹 단어 체커 - 자바 (0) | 2021.04.13 |