cf> [BOJ] 11721. 열 개씩 끊어 출력하기 (Python3) 풀이: ming-jee.tistory.com/135
▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. (2번째 문제!!)
이번에도 특이사항은 없고, 저번에 파이썬으로 짠 코드를 자바로 바꾸는 과정을 거쳤다.
이번 문제는 String을 받아서 처리해주는건데 static으로 받을 때는 static String word; 라고만 하고 main 함수에서 br.readnLine으로 받으려고 하니 어쩌구 저쩌구 에러가 뜨더라. static String word = "";까지 해줘야 정상적으로 돌아간다. 왜 이런지는 조만간 공부해서 정리해보도록 하겠다. ===> 근데 지금 글 작성 후에, 다시 테스트 해봤는데 지금은 문제 없이 잘 되네…?🤔 다음에 또 그러면 그때 공부해보는걸로. 처음에 뭐 다른게 잘못 됐었나.
참고로, 기존 풀이에서 처음 버전 말고 나중에 추가로 올린 리팩토링 된 코드를 보고 짰다.
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의 차이가 뭔지 궁금해졌다.
일단 스윽 보기에는 별 차이 없어보이는데, 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 |
댓글