
[1] 문제
문제 설명
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
제한사항
- 1 ≤ n ≤ 100
입출력 예
n | result |
7 | 1 |
1 | 1 |
15 | 3 |
[2] 정답 및 해석
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> #include <stdbool.h> #include <stdlib.h> int solution(int n) { int answer = 0; if (n<=7) { answer = 1; } else if (n % 7 == 0) { answer = n / 7; } else { answer = ((int)(n/7)) + 1; } return answer; } | cs |
- int solution(int n): 정수 n을 입력으로 받고, 정수를 반환하는 함수이다.
- int answer = 0;: 함수 내부에서 사용할 변수 answer를 선언하고 0으로 초기화한다.
- if (n <= 7): 만약 n이 7 이하인 경우를 체크한다.
- answer = 1;: n이 7 이하인 경우, 한 그룹으로 모두 수용 가능하므로, answer에 1을 대입한다.
- else if (n % 7 == 0): n이 7보다 크지만 7의 배수인 경우를 체크한다.
- answer = n / 7;: n이 7의 배수인 경우, 그룹을 나누지 않고 7명씩 그룹을 만들 수 있으므로, answer에 n을 7로 나눈 값을 대입한다.
- else: 위의 두 경우가 아닌 경우, 즉 7보다 크지만 7의 배수가 아닌 경우를 처리한다.
- answer = ((int)(n / 7)) + 1;: n을 7로 나눈 몫에 1을 더하여 그룹의 수를 계산한다. 나머지가 있을 때에도 부족한 인원을 새로운 그룹으로 만들어주기 위해서 1을 더해준다.
- return answer;: 계산된 answer를 반환한다.
[3] 풀이 과정
#.1 첫 번째 풀이 - 오답


어떤 부분이 틀렸을까?
음... 고민을 좀 해보다가 14인 경우에 2판이 필요한데, 계산 결과는 3으로 나온다는 사실을 깨달았다.
#. 2 두 번째 결과 - 정답


그래서 7로 나눠 떨어지는 경우도 추가해서 고쳐주었더니 정답!
[4] 추가 학습
✏️ https://exponent.tistory.com/53
[C] 프로그래머스 스쿨_2주차 문제1: 두 수의 나눗셈
[1] 문제 문제 설명 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. 제한사항 0 HTML 삽입 미리보기할 수 없는
exponent.tistory.com
나눗셈 연산을 주로 다뤘던 문제를 가져와봤다!
[5] 느낀 점
이전에는 정답 + 정답 코드 해석만 올렸었는데,
내가 풀었던 모든 과정(틀렸던 과정까지도) 을 적는 것이 부족한 부분을 찾는 데에 더 도움이 되는 것 같다.
그리고 전에 틀렸던 내용을 또 틀리는 경우도 꽤나 많이 있었다.
글에 적지는 않았지만 조건문 뒤에 {} 를 붙여야 한다던지 하는...
어렵게 느껴진 문제는 아니었지만 역시나 풀고 나니 뿌듯하다 ;)
'Algorythm > 프로그래머스 스쿨 (C 언어)' 카테고리의 다른 글
[C] 프로그래머스 스쿨_6주차 문제 2: 중복된 숫자 개수 (0) | 2023.08.11 |
---|---|
[C] 프로그래머스 스쿨_6주차 문제 1: 피자 나눠 먹기 (2) (0) | 2023.08.10 |
[C] 프로그래머스 스쿨_5주차 문제 2: 양꼬치 (0) | 2023.08.04 |
[C] 프로그래머스 스쿨_5주차 문제 1: 편지 (0) | 2023.08.04 |
[C] 프로그래머스 스쿨_4주차 문제 2: 배열 뒤집기 (0) | 2023.07.30 |