article thumbnail image
Published 2022. 7. 18. 23:05

C 강의를 듣고 있는데, 최고의 실력향상은 뭐다?

 

'적용하기'

 

바로 들어가보자.


1267 - 핸드폰 요금

문제

동호는 새악대로 T 통신사의 새 핸드폰 옴머나를 샀다. 새악대로 T 통신사는 동호에게 다음 두 가지 요금제 중 하나를 선택하라고 했다.

  1. 영식 요금제
  2. 민식 요금제

영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했으면 10원이 청구된다. 만약 30초부터 59초 사이로 통화를 했으면 20원이 청구된다.

민식 요금제는 60초마다 15원씩 청구된다. 이 말은 만약 59초 또는 그 보다 적은 시간 통화를 했으면 15원이 청구된다. 만약 60초부터 119초 사이로 통화를 했으면 30원이 청구된다.

동호가 저번 달에 새악대로 T 통신사를 이용할 때 통화 시간 목록이 주어지면 어느 요금제를 사용 하는 것이 저렴한지 출력하는 프로그램을 작성하시오.

입력

동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 싼 요금제의 이름을 출력한다. 그 후에 공백을 사이에 두고 요금이 몇 원 나오는지 출력한다. 만약 두 요금제의 요금이 모두 같으면 영식을 먼저 쓰고 민식을 그 다음에 쓴다.

영식은 Y로, 민식은 M으로 출력한다.


<맞힌 코드>

주석에 써놓은 모든 사항을 모르는 상태였다.

(아직 진도 안 나감 ㅋㅋ)

 

이 문제를 풀면서 직감했다.

 

만들고보니 C++이네 ㅋ

파이썬에서 코딩하던 관성으로 짜기에 C는 너무 달랐다...

자바는 집착하는 느낌이었다면

C는 어린아이에게 내가 왜 이 행동을 하는지 알려주는 기분이다.

("왜?, 어떻게?"의 연속이다)


위 문제로 짚을 수 있는 point

 

1. scanf를 통해 input을 한다. 단, '변수의 주소(&변수명)'로 할당한다.

 

2. 배열(array)선언은 '변수명[길이]'로 한다.

 

3. for문은 저렇게 작성한다.

(i++와 ++i는 다르다)

 

4. 공백으로 이루어진 input을 배열로 받아내는 법.

(for문 + scanf로 알아서 받아진다. 어째서지?.. 디버깅을 해도 이해가 안 된다. 일단 킵)

 

5. 조건문에 ()가 들어간다.

(파이썬은 안 들어감)


뭔가.. 어렵지만 뭔가 재밌을지도..?

뭔가.. 뭔가다.

 

 

 

 

 

+

브론즈 5인데 계속 틀려서 스트레스 받다가 파이썬으로 풀고 깜짝놀란 문제

브론즈5 문제가 골드1 난이도가 되는 언어가 있다? ㅋㅋ 뿌슝빠슝

복사했습니다!