[C] νλ‘κ·Έλλ¨Έμ€ μ€μΏ¨_7μ£Όμ°¨ λ¬Έμ 2: μμ΄μ€ μλ©λ¦¬μΉ΄λ Έ
λ¬Έμ μ€λͺ
λ¨Έμ±μ΄λ μΆμ΄ λ μλ μμ΄μ€ μλ©λ¦¬μΉ΄λ
Έλ§ λ§μλλ€. μμ΄μ€ μλ©λ¦¬μΉ΄λ
Έλ νμμ 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
[C] Study: λμ λ©λͺ¨λ¦¬ - (1) λμ ν λΉ λ©λͺ¨λ¦¬λ?
(1) λμ ν λΉ λ©λͺ¨λ¦¬λ? • νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°λ λ°©λ²μλ μ μ (static)κ³Ό λμ (dynamic)μ λ κ°μ§ λ°©λ²μ΄ μλ€. • μ μ λ©λͺ¨λ¦¬ ν λΉ: νλ‘κ·Έλ¨μ΄ μμλκΈ° μ μ 미리 μ ν΄μ§ ν¬κΈ°μ λ©λͺ¨
exponent.tistory.com
βοΈ https://exponent.tistory.com/89
[C] Study: λμ λ©λͺ¨λ¦¬ - (2) malloc()κ³Ό free()
(2) malloc()κ³Ό free() • λμ λ©λͺ¨λ¦¬ ν λΉ μ μ°¨μ λν΄ μμ보μ. • λμ λ©λͺ¨λ¦¬ ν λΉμ λμκ΄μμ μ± μ λΉλ¦¬λ μ μ°¨μ λΉμ·νλ€. λμκ΄μμλ νμν μ± μ μ μ²νκ³ μ± μ΄ μ€λΉλλ©΄ λ°μμ€λ λ¨
exponent.tistory.com
βοΈ κ·Έλ°λ° free()λ₯Ό μ¬μ©νμ§ μμλλ° μ λ΅μΌλ‘ μΈμ μ΄ λμλ€... λλ free()λ₯Ό κΌ μ¨μ€μΌ νλ κ±Έλ‘ μκ³ μμκΈ° λλ¬Έμ ν·κ°λ €μ λ μμ보μλ€. Chat GPT λ₯Ό μ¬μ©νμ¬ μμ보μλ€.
μ£Όμ΄μ§ μ½λμλ ν° λ¬Έμ κ° μμ΄ λ³΄μ λλ€. κ·Έλ¬λ λͺ κ°μ§ μ£Όμν΄μΌ ν μ μ΄ μμ΅λλ€. μλμμ νλμ© μ€λͺ νκ² μ΅λλ€.
1. λ©λͺ¨λ¦¬ ν λΉ ν ν΄μ : μ½λμμ answer λ°°μ΄μ λμ μΌλ‘ ν λΉν λ€μ λ°ννκ³ μλλ°, μ΄ λ°°μ΄μ μ¬μ©ν νμλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ ν΄μΌ ν©λλ€. λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νκΈ° μν΄, μ΄ ν¨μλ₯Ό μ¬μ©ν νμ free(answer);λ₯Ό νΈμΆνμ¬ ν λΉν λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ κ²μ΄ μ’μ΅λλ€.
2.λ©λͺ¨λ¦¬ ν λΉ μ€ν¨ 체ν¬: malloc ν¨μλ λ©λͺ¨λ¦¬ ν λΉμ μ€ν¨ν κ²½μ° NULLμ λ°νν©λλ€. μ΄ μ½λμμλ λ©λͺ¨λ¦¬ ν λΉ μ€ν¨ μμ λν μ²λ¦¬κ° μμΌλ―λ‘, λ©λͺ¨λ¦¬ ν λΉμ΄ μ λλ‘ μ΄λ£¨μ΄μ‘λμ§ μ²΄ν¬νλ κ²μ΄ μ’μ΅λλ€.
κ·Έλ λ€κ³ νλ€.
μ μ 'λμ λ©λͺ¨λ¦¬', 'νμΌ μ μΆλ ₯' κ°λ μ νμ©ν΄μ λμ λͺ©λ‘ κ΄λ¦¬ νλ‘κ·Έλ¨μ λ§λ€μλ μ μ΄ μμλλ°, κ·Έ λλ λ©λͺ¨λ¦¬ λμ λλ¬Έμ κ³μ μ€λ₯κ° λ°μνμλ€.
μ€μν κ°λ μ΄λ κΌ κΈ°μ΅νλλ‘ νμ!
[4] λλ μ
κ°λ μ κΌΌκΌΌν 곡λΆν΄μΌ κ² λ€!