본문 바로가기
🥇Problem Solving (psS2mj)/BOJ

[BOJ] 11721. 열 개씩 끊어 출력하기 (Java)

by psS2mj 2021. 5. 2.
반응형

cf> [BOJ] 11721. 열 개씩 끊어 출력하기 (Python3) 풀이: ming-jee.tistory.com/135

 

[BOJ] 11721. 열 개씩 끊어 출력하기 (Python3)

www.acmicpc.net/problem/11721 (level: Bronze II) 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단.

ming-jee.tistory.com

 

▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. (2번째 문제!!)

 

이번에도 특이사항은 없고, 저번에 파이썬으로 짠 코드를 자바로 바꾸는 과정을 거쳤다.

 

이번 문제는 String을 받아서 처리해주는건데 static으로 받을 때는 static String word; 라고만 하고 main 함수에서 br.readnLine으로 받으려고 하니 어쩌구 저쩌구 에러가 뜨더라. static String word = "";까지 해줘야 정상적으로 돌아간다. 왜 이런지는 조만간 공부해서 정리해보도록 하겠다. ===> 근데 지금 글 작성 후에, 다시 테스트 해봤는데 지금은 문제 없이 잘 되네…?🤔 다음에 또 그러면 그때 공부해보는걸로. 처음에 뭐 다른게 잘못 됐었나.

 

참고로, 기존 풀이에서 처음 버전 말고 나중에 추가로 올린 리팩토링 된 코드를 보고 짰다.


대표이미지 설정을 위해 저번에 첨부했던 풀이노트를 다시 첨부함. 출처:  https://ming-jee.tistory.com/135  [만두의 모험]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* @date: 2021/05/02
 * @author: psS2mj
 * @brief: BOJ_11721_열 개씩 끊어 출력하기 */

public class BOJ_11721_열개씩끊어출력하기 {

	static String word = "";
	static int len;

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		word = br.readLine();
		len = word.length() / 10;

		for (int i = 0; i < len; i++) {
			System.out.println(word.substring(i * 10, i * 10 + 10));
		}
		System.out.println(word.substring(len * 10));

	} // main

}

자바가 파이썬보다 메모리를 훨씬 적게 사용하나.

특이사항은 위에서 말한 static String word;와 static String word = "";의 차이 정도. 이건 조사가 필요하고.. ===> 다시 테스트 해보니 문제 없이 잘 돌아가서 일단 조사 보류😅

 

음. substring 함수를 활용해봤다는 것 정도가 특이사항이겠다.

근데 자바 공식 API 문서 읽어보다가 substring과 subSequence의 차이가 뭔지 궁금해졌다.

출처: https://docs.oracle.com/javase/8/docs/api/

일단 스윽 보기에는 별 차이 없어보이는데, substring의 경우…

System.out.println(word.substring(len * 10));

위 코드처럼 beginIndex만 지정해주었을 때 알아서 문자열 마지막까지 훑는(?) 반면에, subSequence는 이런 용례는 없다. 무조건 endIndex까지 지정해줘야 한다. 검색해서 나오는 글 몇 개를 스윽- 봤을 때는 split이랑 관계가 있나 싶기도 한데 이것도 조만간 공부해서 정리해보도록 하겠다.

반응형

'🥇Problem Solving (psS2mj) > BOJ' 카테고리의 다른 글

[BOJ] 2839. 설탕 배달 (Java)  (0) 2021.05.05
[BOJ] 11399. ATM (Java)  (0) 2021.05.02
[BOJ] 11047. 동전 0 (Java)  (0) 2021.05.02
[BOJ] 11399. ATM (Python3)  (0) 2021.04.23
[BOJ] 11047. 동전 0 (Python3)  (0) 2021.04.23

댓글