[구름톤 챌린지] 1주차 학습 일기 (1)

밤새·2023년 8월 22일
0

구름톤 챌린지

목록 보기
1/4
post-thumbnail

구름IDE 문제 문제 1~3

배운점 ✨

1) Integer.parseInt(sc.nextLine())

평소에 나는 정수를 입력 받을 때 항상 sc.nextInt() 이런식으로 사용해왔었다.

하지만 풀이를 보면서 Integer.parseInt() 함수를 이용하여 Integer.parseInt(sc.nextLine()) 으로 쓰면 들어온 문자열을 정수로 변환하여 변수에 할당할 수 있다는 것을 알게 되었다. 앞으로 정수를 입력받을 때 위의 코드처럼 사용하도록 해볼 것이다!
( Integer.parseInt() : 들어온 문자열을 정수로 변환할 수 있는 함수)

2) split() 함수

또한 자바에서는 문자열을 특정 기준으로 나누어서, 배열로 변환해주는 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();
}

첫번째 코드는 풀이 코드고, 두 번째는 내가 작성한 코드이다! 각각의 장점에 대해 한 번 알아보도록 하겠다.

첫 번째 코드의 장점 :

  1. 입력된 한 줄을 읽고 문자열을 공백을 기준으로 나눠 처리하고 있다. 이는 입력 형식이 "숫자 연산자 숫자"와 같은 형태일 때 효과적이다.
  2. 코드가 명확하게 구조화되어 있어서, 각 입력 값이 어떤 역할을 하는지 이해하기 쉽다.

두 번째 코드의 장점 :

  1. 두 번째 코드는 입력 형식이 "숫자 연산자 숫자" 형태가 아니라 각각의 값이 공백으로 분리돼 입력되는 경우에 더 유연하게 대처할 수 있다.
  2. 두 번째 코드는 입력값이 몇 번 반복되는지 먼저 읽어들이는 부분이 있어서, 반복 횟수를 미리 알고 있을 때 유용하다.

두 코드 모두 각각의 장점을 가지고 있으니, 어떤 상황에서 사용하느냐에 따라서 선택하면 될 것 같다!

느낀점 ✍🏻

아직은 충분히 풀 수 있을 정도의 난이도였다!

어려웠던 점 🤔

처음에 시간 문제가 나와서 잠깐 헷갈려었다.

// 현재 분에서, 비용 분만큼 더한 후, 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

profile
프로젝트를 통해 배운 개념이나 겪은 문제점들을 정리하고, 회고록을 작성하며 성장해나가는 곳입니다 😊

0개의 댓글