๋ฌธ์ ์ค๋ช
๋จธ์ฑ์ด๋ ์ถ์ด ๋ ์๋ ์์ด์ค ์๋ฉ๋ฆฌ์นด๋
ธ๋ง ๋ง์ญ๋๋ค. ์์ด์ค ์๋ฉ๋ฆฌ์นด๋
ธ๋ ํ์์ 5,500์์
๋๋ค. ๋จธ์ฑ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ money๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด๊ฐ ์ต๋๋ก ๋ง์ค ์ ์๋ ์๋ฉ๋ฆฌ์นด๋
ธ์ ์ ์์ ๋จ๋ ๋์ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
0 < money ≤ 1,000,000
์ ์ถ๋ ฅ ์
money | result |
5,500 | [1, 0] |
15,000 | [2, 4000] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 5,500์์ ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ ํ ์์ ์ด ์ ์๊ณ ์๋์ 0์์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 15,000์์ ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ ๋ ์์ ์ด ์ ์๊ณ ์๋์ 4,000์์ ๋๋ค.
[2] ์ ๋ต ๋ฐ ํด์
#.1 ์ ๋ต ์ฝ๋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> #include <stdbool.h> #include <stdlib.h> int* solution(int money) { int* answer = (int*)malloc(2 * sizeof(int)); // ์ ์ ๋ ๊ฐ๋ฅผ ๋ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ ๋น int cups = money / 5500; // ์๋ฉ๋ฆฌ์นด๋
ธ ํ ์์ ๊ฐ๊ฒฉ์ 5500์ int remaining_money = money - cups * 5500; // ๋จ์ ๋ ๊ณ์ฐ answer[0] = cups; // ์ต๋ ์๋ฉ๋ฆฌ์นด๋
ธ ์ ์๋ฅผ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ ์ฅ answer[1] = remaining_money; // ๋จ์ ๋์ ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ์์์ ์ ์ฅ return answer; // ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ์ ์ฅํ ๋ค ๋ฐํ } | cs |
#.2 ํด์
1. #include ๋ฌธ:
์ด ์ฝ๋๋ ํ์ค ์
์ถ๋ ฅ ๋ฐ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํด ํ์ํ ํค๋ ํ์ผ๋ค์ ํฌํจํ๊ณ ์๋ค.
2. int* solution(int money):
solution ํจ์๋ ์ ์ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ ํจ์์ด๋ค. ์ฆ, ๊ฒฐ๊ณผ๋ ์ ์ ๊ฐ์ ๋ฐฐ์ด๋ก ๋ด์์ ๋ฐํํ๊ฒ ๋๋ค.
ํจ์์ ์ธ์๋ก๋ ๋์ ๋ํ๋ด๋ ์ ์ money๊ฐ ์ ๋ฌ๋๋ค.
3. int* answer = (int*)malloc(2 * sizeof(int));:
๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ฐฐ์ด answer๋ฅผ ๋์ ํ ๋นํ์ฌ ์์ฑํ๋ค. ์ด ๋ฐฐ์ด์ ๋ ๊ฐ์ ์ ์ ๊ฐ์ ๋ด์ ์ ์๋๋ก ํ ๋น๋๋ค.
malloc ํจ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ํจ์์ธ๋ฐ, (int*)์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํฌ์ธํฐ๋ก ์บ์คํ ํ๋ผ๋ ์๋ฏธ์ด๋ค.
2 * sizeof(int)๋ ๋ ๊ฐ์ ์ ์๊ฐ ๋ค์ด๊ฐ๋งํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ผ๋ ์๋ฏธ์ด๋ค.
4. int cups = money / 5500;:
์๋ฉ๋ฆฌ์นด๋
ธ ํ ์์ ๊ฐ๊ฒฉ์ 5500์์ด๋ค. ๋ฐ๋ผ์ ์
๋ ฅ๋ ๋ money๋ฅผ 5500์ผ๋ก ๋๋๋ฉด ๊ตฌ๋งคํ ์ ์๋ ์๋ฉ๋ฆฌ์นด๋
ธ์ ์ ์์ธ cups๊ฐ ๊ณ์ฐ๋๋ค.
5. int remaining_money = money - cups * 5500;:
๊ตฌ๋งคํ ์๋ฉ๋ฆฌ์นด๋
ธ์ ์ ์์ ๋ฐ๋ผ ๋จ๋ ๋์ ๊ณ์ฐํ๋ค. ์๋ฉ๋ฆฌ์นด๋
ธ ํ ์๋น 5500์์ ์ง๋ถํ ๊ธ์ก์ cups ์ ์๋งํผ ๋นผ์ฃผ๋ฉด ๋จ์ ๋์ด ๊ณ์ฐ๋๋ค.
6. answer[0] = cups;์ answer[1] = remaining_money;:
๊ณ์ฐ๋ ์๋ฉ๋ฆฌ์นด๋
ธ ์ ์ cups๋ฅผ ๋ฐฐ์ด answer์ ์ฒซ ๋ฒ์งธ ์์์ ์ ์ฅํ๊ณ , ๋จ์ ๋ remaining_money๋ฅผ ๋ฐฐ์ด answer์ ๋ ๋ฒ์งธ ์์์ ์ ์ฅํ๋ค.
7. return answer;:
๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ์ ์ฅํ ๋ค, ๋์ ํ ๋น๋ ๋ฐฐ์ด์ ํฌ์ธํฐ์ธ answer๋ฅผ ๋ฐํํ๋ค. ์ด๋ ๊ฒ ํจ์ ํธ์ถ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ ์ ์๋ค.
[3] ์ถ๊ฐ ํ์ต
โ๏ธ https://exponent.tistory.com/88
โ๏ธ https://exponent.tistory.com/89
โ๏ธ ๊ทธ๋ฐ๋ฐ free()๋ฅผ ์ฌ์ฉํ์ง ์์๋๋ฐ ์ ๋ต์ผ๋ก ์ธ์ ์ด ๋์๋ค... ๋๋ free()๋ฅผ ๊ผญ ์จ์ค์ผ ํ๋ ๊ฑธ๋ก ์๊ณ ์์๊ธฐ ๋๋ฌธ์ ํท๊ฐ๋ ค์ ๋ ์์๋ณด์๋ค. Chat GPT ๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ณด์๋ค.
์ฃผ์ด์ง ์ฝ๋์๋ ํฐ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ช ๊ฐ์ง ์ฃผ์ํด์ผ ํ ์ ์ด ์์ต๋๋ค. ์๋์์ ํ๋์ฉ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํ ํด์ : ์ฝ๋์์ answer ๋ฐฐ์ด์ ๋์ ์ผ๋ก ํ ๋นํ ๋ค์ ๋ฐํํ๊ณ ์๋๋ฐ, ์ด ๋ฐฐ์ด์ ์ฌ์ฉํ ํ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํด์ผ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ด ํจ์๋ฅผ ์ฌ์ฉํ ํ์ free(answer);๋ฅผ ํธ์ถํ์ฌ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
2.๋ฉ๋ชจ๋ฆฌ ํ ๋น ์คํจ ์ฒดํฌ: malloc ํจ์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์คํจํ ๊ฒฝ์ฐ NULL์ ๋ฐํํฉ๋๋ค. ์ด ์ฝ๋์์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์คํจ ์์ ๋ํ ์ฒ๋ฆฌ๊ฐ ์์ผ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ ๋๋ก ์ด๋ฃจ์ด์ก๋์ง ์ฒดํฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ ๋ค๊ณ ํ๋ค.
์ ์ '๋์ ๋ฉ๋ชจ๋ฆฌ', 'ํ์ผ ์ ์ถ๋ ฅ' ๊ฐ๋ ์ ํ์ฉํด์ ๋์ ๋ชฉ๋ก ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์๋ ์ ์ด ์์๋๋ฐ, ๊ทธ ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋๋ฌธ์ ๊ณ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ค.
์ค์ํ ๊ฐ๋ ์ด๋ ๊ผญ ๊ธฐ์ตํ๋๋ก ํ์!
[4] ๋๋ ์
๊ฐ๋ ์ ๊ผผ๊ผผํ ๊ณต๋ถํด์ผ ๊ฒ ๋ค!