알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://level.goorm.io/exam/43113/substring/quiz/1
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
Think🤔
이번에도 Scanner와 함께 같이 이용해서 풀어본다.
일단 처음 input으로 I Love You를 받는다.
그리고 3 4를 하면
3번째에 있는 Love부터 4글자 출력되면 되는 문제이다.
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] range = br.readLine().split(" ");
System.out.println(range[0]+ " " + range[1]);
String answer = input.subString(range[0], range[1]);
System.out.print(answer);
}
}
input.subString 부분에서 에러가 난다.
첫 번째 파라미터로 begin을 받고 두 번쨰 파라미터로 end를 받는데 도대체 어느 부분이 문제인 것인가 ....
Solution✍
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] range = br.readLine().split(" ");
String answer = input.substring(Integer.parseInt(range[0])-1, Integer.parseInt(range[0])+Integer.parseInt(range[1])-1);
System.out.print(answer);
br.close();
}
}
0,1,2 이렇게 읽고 range의 값은 -1 부터 시작해야 된다.
그리고 뒤에 값은 그 범위 부터 + 두번째 입력된 값 부터 시작해야 한다.
이걸 Scanner로 바꿔서 풀어보자
import java.io.*;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String munjang = sc.nextLine();
int a = sc.nextInt();
int b = sc.nextInt();
String answer = munjang.substring(a-1,a+b-1);
System.out.print(answer);
sc.close();
}
}
Scanner를 이용하면 띄어쓰기를 해도 값을 인식한다.
뒤에 있는 값은 누적해서 -1을 뺀 값을 넣어주는 것이 맞는답.
Review🤩
스캐너를 쓰면 편하지만 버퍼리더가 성능 적으로 좋기 때문에 버퍼리더를 쓰는것이 좋아보인다
'Algorithm' 카테고리의 다른 글
[구름] 약수의 합 (0) | 2021.12.25 |
---|---|
[구름] 소수 판별 (0) | 2021.12.25 |
[구름] Bubble Sort (0) | 2021.12.25 |
[구름] 369 게임 (0) | 2021.12.25 |
[구름] 시험성적 평균과 등급 구하기 (0) | 2021.12.25 |