9강에서 배운 for 함수를 배웠습니다.
for는 while 함수와 마찬가지로 반복문에 쓰이는데, 둘의 차이점은 유한인지 무한인지 입니다.
for 함수는 반복횟수가 정해져 있는 코드를 작성할 때 쓰입니다.

9-1 문제. [코드 9-2]를 수정해서 비밀번호를 다섯 번만 입력할 수 있게 바꾸세요.
(힌트: while문 대신 for문을 쓰세요.)
- 씽푸미니 풀이

- 출력

- 씽푸미니 해설
이번 문제 역시 문제를 읽고 어떤 방향으로 문제를 풀어나가야할지 감이 잡히지 않아서 카페를 먼저 찾아보았다.
처음 접근할때 passcodetry 와 같은 새로운 변수를 사용하지 않고, passcodeindex로 풀어서 빌드조차 되지 않았다.
그리고 for 이중구문을 사용해야한다는 것을 알고서 bool 아래에 passcodetry 변수를 사용한 for 구문을 만들었는데 "앞으로 입력할 수 있는 기회는 n번 입니다."라는 문장이 연속으로 5개 나와서 멘붕이였다.
그리고 유튜브로 해설을 찾아보니, while (true) 대신 for문을 사용하여 전체적으로 감싸야(?)한다는 것을 알았다...
알고리즘의 중요성을 다시금 깨닫게 되었다..
9-2 문제. 3학년에 다섯 개의 반이 있고 한 반의 학생은 10명입니다. 각 반의 학생들의 성적을 입력받아서 반별로 평균을 구하세요.
(힌트: 이중 for문을 쓰세요.)
- 씽푸미니풀이

- 씽푸미니해설
시행착오를 거치고 유튭에서 포프쌤의 강의를 참고해서 코드를 짰다. 뭔가 조잡한 느낌이다.
포프쌤의 강의를 듣다보니 내 식이 잘못된 것을 알았다. 성적의 합을 구할때는 total 을 0으로 미리 선언 후에 total = total + studentscore[i]로 하는게 좋을 듯 싶다.
- 시행착오

성적 총합을 입력하게 한 뒤, 각 반의 평균값을 출력했다. 하지만 문제에서는 이중 for문을 사용하라고 한다.. again..!

이렇게 식을 세우면 그럴듯한 출력값이 나와서 맞은 줄 알았는데 포프쌤의 풀이와 비교해보니 틀리다는 것을 알았다.
studentscore[i] = int.parse(console.readline());
라고만 쓰면 이건 합이 되지 않는다!!
studentscore[i] = studentscore[i] + int.parse(console.readline());
이렇게 써야 studentscore[i]에 누적된 합이 나온다!!
- 포프쌤은 어떻게 풀었지?

- 출력

처음에 classcount, studentcount 를 선언하고 풀어서 식이 더 깔끔해보인다.
'오늘의 프로그래밍 👩💻' 카테고리의 다른 글
Hello Coding 프로그래밍 심화문제 챕터 10 문제풀이, 정답 (2) | 2022.04.01 |
---|---|
Hello Coding 프로그래밍 심화문제 챕터 8 문제풀이, 정답 (0) | 2022.03.31 |
Hello Coding 프로그래밍 심화문제 챕터 7 배열 문제풀이, 정답 (0) | 2022.03.30 |
Hello Coding 프로그래밍 심화문제 챕터 6 문제풀이, 정답 (0) | 2022.03.29 |
Hello Coding 프로그래밍 심화문제 챕터 5 문제풀이, 정답출처: (0) | 2022.03.29 |
댓글