[1] ๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ฌธ์์ด ๋ฐฐ์ด strlist๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. strlist ๊ฐ ์์์ ๊ธธ์ด๋ฅผ ๋ด์ ๋ฐฐ์ด์ retrunํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ strlist ์์์ ๊ธธ์ด ≤ 100
- strlist๋ ์ํ๋ฒณ ์๋ฌธ์, ๋๋ฌธ์, ํน์๋ฌธ์๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
strlist | result |
["We", "are", "the", "world!"] | [2, 3, 3, 6] |
["I", "Love", "Programmers."] | [1, 4, 12] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ["We", "are", "the", "world!"]์ ๊ฐ ์์์ ๊ธธ์ด์ธ [2, 3, 3, 6]์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ["I", "Love", "Programmers."]์ ๊ฐ ์์์ ๊ธธ์ด์ธ [1, 4, 12]์ returnํฉ๋๋ค.
[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> #include <string.h> int* solution(const char* strlist[], size_t strlist_len) { int* answer = (int*)malloc(strlist_len * sizeof(int)); // ๊ธธ์ด ๋ฐฐ์ด ํ ๋น // ๊ฐ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด์ ์ ์ฅํ๋ ๊ณผ์ for (size_t i = 0; i < strlist_len; ++i) { answer[i] = strlen(strlist[i]); // ๊ฐ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด์ ์ ์ฅ } return answer; // ๊ธธ์ด๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด์ ๋ฐํ } | cs |
#.2 ํด์
์ ์ฝ๋๋ ๋ฌธ์์ด ๋ฐฐ์ด strlist์ ๊ฐ ์์์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ , ๊ทธ ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์๋ฅผ ์ ์ํ๊ณ ์๋ค.
1. #include ๋ฌธ: ์ด ์ฝ๋๋ ํ์ค ์ ์ถ๋ ฅ ๋ฐ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ์ํด ํ์ํ ํค๋ ํ์ผ๋ค์ ํฌํจํ๊ณ ์๋ค.
2. int* solution(const char* strlist[], size_t strlist_len): solution ํจ์๋ ์ ์ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ ํจ์๋ก, ์
๋ ฅ์ผ๋ก ๋ฌธ์์ด ๋ฐฐ์ด strlist์ ๊ทธ ๋ฐฐ์ด์ ๊ธธ์ด strlist_len์ด ์ฃผ์ด์ง๋ค.
3. int* answer = (int*)malloc(strlist_len * sizeof(int));: ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ ์ฅํ ์ ์ ๋ฐฐ์ด answer๋ฅผ ๋์ ํ ๋นํ์ฌ ์์ฑํ๋ค. strlist_len * sizeof(int)๋ strlist_len ๊ฐ์ ์ ์๊ฐ ๋ค์ด๊ฐ๋งํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ผ๋ ์๋ฏธ์ด๋ค.
4. for (size_t i = 0; i < strlist_len; ++i) { ... }: for ๋ฃจํ๋ฅผ ํตํด ๊ฐ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด์ ์ ์ฅํ๋ ๋ถ๋ถ์ ์ ์ํ๋ค. i๋ 0๋ถํฐ ์์ํ์ฌ strlist_len - 1๊น์ง ์ํํ๋ค.
5. answer[i] = strlen(strlist[i]);: strlen ํจ์๋ฅผ ์ฌ์ฉํ์ฌ strlist์ i๋ฒ์งธ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ๊ณ , ๊ทธ ๊ธธ์ด๋ฅผ answer ๋ฐฐ์ด์ i๋ฒ์งธ ์์์ ์ ์ฅํ๋ค.
6. return answer;: ๊ธธ์ด๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด์ธ answer๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๋ ๊ฒ ํด์ ๋ฌธ์์ด ๋ฐฐ์ด์ ๊ฐ ์์์ ๊ธธ์ด๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด์ด ๋ฐํ๋๋ค.
[3] ์ถ๊ฐ ํ์ต
โ๏ธ https://exponent.tistory.com/88
โ๏ธ https://exponent.tistory.com/89
โ๏ธ ์ ๋ต์ผ๋ก๋ ์ธ์ ๋์์ง๋ง, ์ฃผ์ํ ์ ์ด ์๋ค.
1. ๋ฉ๋ชจ๋ฆฌ ํด์ : ์ฝ๋์์ ๋์ ์ผ๋ก ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ ๋ถ๋ถ์ด ๋๋ฝ๋์ด ์์ต๋๋ค. ํจ์๊ฐ ๋๋ ํ์๋ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐ๋์ free ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํด์ ํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
2. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์คํจ ์ฒดํฌ: malloc ํจ์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์คํจํ ๊ฒฝ์ฐ NULL์ ๋ฐํํฉ๋๋ค. ์ด ์ฝ๋์์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์คํจ ์์ ๋ํ ์ฒ๋ฆฌ๊ฐ ์์ผ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ ๋๋ก ์ด๋ฃจ์ด์ก๋์ง ์ฒดํฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ถ์ฒ: ์ฑ GPT
[4] ๋๋ ์
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น... ๋ง์ด ํด๋ด์ผ ๋๊ฒ ์ง? ๊ฐ๋ ๋ ์์ํ๊ณ ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค.