구름IDE 문제 문제 1~3
평소에 나는 정수를 입력 받을 때 항상 sc.nextInt()
이런식으로 사용해왔었다.
하지만 풀이를 보면서 Integer.parseInt()
함수를 이용하여 Integer.parseInt(sc.nextLine())
으로 쓰면 들어온 문자열을 정수로 변환하여 변수에 할당할 수 있다는 것을 알게 되었다. 앞으로 정수를 입력받을 때 위의 코드처럼 사용하도록 해볼 것이다!
( Integer.parseInt()
: 들어온 문자열을 정수로 변환할 수 있는 함수)
또한 자바에서는 문자열을 특정 기준으로 나누어서, 배열로 변환해주는 split()
메소드가 있는데 split('분리 기준')
같은 방법으로 작성하면 입력받은 값을 쉽게 분리하여 사용할 수 있다는 것을 알게 되었다. 보통 나는 반복문을 이용하여 입력을 받아주었는데 이건 상상하지도 못했다!
String[] time = sc.nextLine().split(" ");
→ for문 필요 x
// 풀이
String[] s = sc.nextLine().split(" ");
int firstNum = Integer.parseInt(s[0]);
String command = s[1];
int secondNum = Integer.parseInt(s[2]);
// 내가 짠 코드
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int time1 = sc.nextInt();
String oper = sc.next();
int time2 = sc.nextInt();
}
첫번째 코드는 풀이 코드고, 두 번째는 내가 작성한 코드이다! 각각의 장점에 대해 한 번 알아보도록 하겠다.
첫 번째 코드의 장점 :
- 입력된 한 줄을 읽고 문자열을 공백을 기준으로 나눠 처리하고 있다. 이는 입력 형식이 "숫자 연산자 숫자"와 같은 형태일 때 효과적이다.
- 코드가 명확하게 구조화되어 있어서, 각 입력 값이 어떤 역할을 하는지 이해하기 쉽다.
두 번째 코드의 장점 :
- 두 번째 코드는 입력 형식이 "숫자 연산자 숫자" 형태가 아니라 각각의 값이 공백으로 분리돼 입력되는 경우에 더 유연하게 대처할 수 있다.
- 두 번째 코드는 입력값이 몇 번 반복되는지 먼저 읽어들이는 부분이 있어서, 반복 횟수를 미리 알고 있을 때 유용하다.
두 코드 모두 각각의 장점을 가지고 있으니, 어떤 상황에서 사용하느냐에 따라서 선택하면 될 것 같다!
아직은 충분히 풀 수 있을 정도의 난이도였다!
처음에 시간 문제가 나와서 잠깐 헷갈려었다.
// 현재 분에서, 비용 분만큼 더한 후, 60으로 나눈 나머지가 결과 분이다.
int tempMinute = currentMinute + costMinute;
int resultMinute = tempMinute % 60;
// 현재 시에서, 비용 분읠 60으로 나는 몫만큼 더한 후, 24로 나눈 나머지가 결과 시이다.
int resultHour = (currentHour + tempMinute / 60) % 24;
나중에 헷갈리지 않도록 잘 봐둬야 겠다!
구름톤 챌린지가 뭔지 궁금하다면?
https://9oormthonchallenge.oopy.io/
학습 일기 작성법이 궁금하다면 ?
https://9oormthonchallenge.oopy.io/blogeventguide