[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋ฉ๋ด ๋ฆฌ๋ด์ผ
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/72411?language=swift
๋ ์คํ ๋์ ์ด์ํ๋ ์ค์นดํผ๋ ์ฝ๋ก๋19๋ก ์ธํ ๋ถ๊ฒฝ๊ธฐ๋ฅผ ๊ทน๋ณตํ๊ณ ์ ๋ฉ๋ด๋ฅผ ์๋ก ๊ตฌ์ฑํ๋ ค๊ณ ๊ณ ๋ฏผํ๊ณ ์์ต๋๋ค.
๊ธฐ์กด์๋ ๋จํ์ผ๋ก๋ง ์ ๊ณตํ๋ ๋ฉ๋ด๋ฅผ ์กฐํฉํด์ ์ฝ์ค์๋ฆฌ ํํ๋ก ์ฌ๊ตฌ์ฑํด์ ์๋ก์ด ๋ฉ๋ด๋ฅผ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ค ๋จํ๋ฉ๋ด๋ค์ ์กฐํฉํด์ ์ฝ์ค์๋ฆฌ ๋ฉ๋ด๋ก ๊ตฌ์ฑํ๋ฉด ์ข์ ์ง ๊ณ ๋ฏผํ๋ "์ค์นดํผ"๋ ์ด์ ์ ๊ฐ ์๋๋ค์ด ์ฃผ๋ฌธํ ๋ ๊ฐ์ฅ ๋ง์ด ํจ๊ป ์ฃผ๋ฌธํ ๋จํ๋ฉ๋ด๋ค์ ์ฝ์ค์๋ฆฌ ๋ฉ๋ด๋ก ๊ตฌ์ฑํ๊ธฐ๋ก ํ์ต๋๋ค.
๋จ, ์ฝ์ค์๋ฆฌ ๋ฉ๋ด๋ ์ต์ 2๊ฐ์ง ์ด์์ ๋จํ๋ฉ๋ด๋ก ๊ตฌ์ฑํ๋ ค๊ณ ํฉ๋๋ค. ๋ํ, ์ต์ 2๋ช
์ด์์ ์๋์ผ๋ก๋ถํฐ ์ฃผ๋ฌธ๋ ๋จํ๋ฉ๋ด ์กฐํฉ์ ๋ํด์๋ง ์ฝ์ค์๋ฆฌ ๋ฉ๋ด ํ๋ณด์ ํฌํจํ๊ธฐ๋ก ํ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์๋ 6๋ช
์ด ์ฃผ๋ฌธํ ๋จํ๋ฉ๋ด๋ค์ ์กฐํฉ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด,
(๊ฐ ์๋์ ๋จํ๋ฉ๋ด๋ฅผ 2๊ฐ ์ด์ ์ฃผ๋ฌธํด์ผ ํ๋ฉฐ, ๊ฐ ๋จํ๋ฉ๋ด๋ A ~ Z์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํฉ๋๋ค.)
์๋ ๋ฒํธ์ฃผ๋ฌธํ ๋จํ๋ฉ๋ด ์กฐํฉ
1๋ฒ ์๋ | A, B, C, F, G |
2๋ฒ ์๋ | A, C |
3๋ฒ ์๋ | C, D, E |
4๋ฒ ์๋ | A, C, D, E |
5๋ฒ ์๋ | B, C, F, G |
6๋ฒ ์๋ | A, C, D, E, H |
๊ฐ์ฅ ๋ง์ด ํจ๊ป ์ฃผ๋ฌธ๋ ๋จํ๋ฉ๋ด ์กฐํฉ์ ๋ฐ๋ผ "์ค์นดํผ"๊ฐ ๋ง๋ค๊ฒ ๋ ์ฝ์ค์๋ฆฌ ๋ฉ๋ด ๊ตฌ์ฑ ํ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฝ์ค ์ข ๋ฅ๋ฉ๋ด ๊ตฌ์ฑ์ค๋ช
์๋ฆฌ 2๊ฐ ์ฝ์ค | A, C | 1๋ฒ, 2๋ฒ, 4๋ฒ, 6๋ฒ ์๋์ผ๋ก๋ถํฐ ์ด 4๋ฒ ์ฃผ๋ฌธ๋์ต๋๋ค. |
์๋ฆฌ 3๊ฐ ์ฝ์ค | C, D, E | 3๋ฒ, 4๋ฒ, 6๋ฒ ์๋์ผ๋ก๋ถํฐ ์ด 3๋ฒ ์ฃผ๋ฌธ๋์ต๋๋ค. |
์๋ฆฌ 4๊ฐ ์ฝ์ค | B, C, F, G | 1๋ฒ, 5๋ฒ ์๋์ผ๋ก๋ถํฐ ์ด 2๋ฒ ์ฃผ๋ฌธ๋์ต๋๋ค. |
์๋ฆฌ 4๊ฐ ์ฝ์ค | A, C, D, E | 4๋ฒ, 6๋ฒ ์๋์ผ๋ก๋ถํฐ ์ด 2๋ฒ ์ฃผ๋ฌธ๋์ต๋๋ค. |
[๋ฌธ์ ]
๊ฐ ์๋๋ค์ด ์ฃผ๋ฌธํ ๋จํ๋ฉ๋ด๋ค์ด ๋ฌธ์์ด ํ์์ผ๋ก ๋ด๊ธด ๋ฐฐ์ด orders, "์ค์นดํผ"๊ฐ ์ถ๊ฐํ๊ณ ์ถ์ดํ๋ ์ฝ์ค์๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋จํ๋ฉ๋ด๋ค์ ๊ฐฏ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด course๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, "์ค์นดํผ"๊ฐ ์๋ก ์ถ๊ฐํ๊ฒ ๋ ์ฝ์ค์๋ฆฌ์ ๋ฉ๋ด ๊ตฌ์ฑ์ ๋ฌธ์์ด ํํ๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
ํ์ด
๋ฌธ์ ๋ฅผ ์ฝ๊ณ ์กฐํฉ์ผ๋ก ํธ๋ ๊ฒ ๋ง๊ณ ๋ ๋ฐฉ๋ฒ์ด ์์ง ์์๊น? ๋ผ๋ ์๊ฐ์ ํ์ต๋๋ค. ์ค์ ๋ก ์ฃผ๋ฌธ์ ์ต๋ ๊ฐ์๋ 20๊ฐ, ํ ์ฃผ๋ฌธ์์ ํฌํจ๋๋ ๋ฉ๋ด์ ์ต๋ ๊ฐ์๋ 10๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ ์์ด ์ถฉ๋ถํ ๊ฐ๋ฅํด๋ณด์์ต๋๋ค. ๋ณดํต 1์ด์ 1์ต๋ฒ์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ 10! * 20์ ์ต๋๋ก ์ก์ผ๋ฉด ์กฐํฉ ๊ณ์ฐ๋ง 1์ด์์ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํ๊ณ ์กฐํฉ์ผ๋ก ํ์ด๋ฅผ ์์ํ์ต๋๋ค.
๋จผ์ ๊ฐ ์ฃผ๋ฌธ์ ๋ํด course ๋ฐฐ์ด์ ๋ค์ด์๋ ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์กฐํฉ์ ์ฐพ์์ค๋๋ค. ์๋ฅผ๋ค์ด,
["ABCDE", "AB", "CD", "ADE", "XYZ", "XYZ", "ACD"], [2,3,5]
์ ๊ฒฝ์ฐ์๋ ์ฒซ๋ฒ์งธ ์ฃผ๋ฌธ์ธ "ABCDE"์ ๋ํด 2๊ฐ, 3๊ฐ, 5๊ฐ๋ฅผ ๋ฝ์ ๋ง๋ค ์ ์๋ ์กฐํฉ์ ๋ง๋ญ๋๋ค. ์ด๋ ๊ฒ ์ป์ ์กฐํฉ์ ํ๋์ ๋ฐฐ์ด์ ๋ฃ์ด ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
2๊ฐ ๋ฝ์ ๋: ["AB", "AC", "AD", "AE", "BC", "BD", "BE", "CD", "CE", "DE"]
3๊ฐ ๋ฝ์ ๋: ["ABC", "ABD", "ABE", "ACD", "ACE", "ADE", "BCD", "BCE", "BDE", "CDE"]
5๊ฐ ๋ฝ์ ๋: ["ABCDE"]
์ด๋ฒ ์ฃผ๋ฌธ์ ๋ํ ์ ์ฒด ๊ฐ๋ฅํ ์กฐํฉ:
["AB", "AC", "AD", "AE", "BC", "BD", "BE", "CD", "CE", "DE", "ABC", "ABD", "ABE", "ACD", "ACE", "ADE", "BCD", "BCE", "BDE", "CDE", "ABCDE"]
์ด๋ ๊ฒ ๋ชจ๋ ์ฃผ๋ฌธ์ ๋ํด course ์ ๊ฐ๋ค์ ๋ํ ์กฐํฉ์ ๋ง๋ค์ด ์ ์ฅํ๋ฉด, ๊ฐ ์ฃผ๋ฌธ์์ ์ป์ ์ ์๋ ์กฐํฉ๋ค์ ๋ชจ์ ๋ฐฐ์ด๋ก ๋ง๋ค ์ ์์ต๋๋ค. ์ด์ ๊ฐ ์กฐํฉ๋ค์ด ๋ช๋ฒ์ฉ ๋ฑ์ฅํ๋์ง ์์๋ด์ผํฉ๋๋ค. ์ ๋ ์ด๋ฅผ ์ํด์ [String : Int] ํ์ ์ ๋์ ๋๋ฆฌ๋ฅผ ์ ์ธํ์ฌ ์กฐํฉ๊ณผ ๊ทธ ๊ฐ์๋ฅผ ์ ์ฅํ๋๋ก ํ์ต๋๋ค. course์ ๋ค์ด์๋ ๊ฐ๋ค์ ํ๋์ฉ ๋ฝ์๊ฐ๋ฉฐ 2๊ฐ์ฉ ๋ฝ์ ๋, 3๊ฐ์ฉ ๋ฝ์ ๋, 5๊ฐ์ฉ ๋ฝ์ ๋์ ๋ํ ๊ฐ์๋ฅผ ์ธ์ด์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ๊ฐ์๋ฅผ ์ป๊ฒ๋ฉ๋๋ค.
["AE": 2, "AB": 2, "CD": 3, "BE": 1, "DE": 2, "YZ": 2, "XY": 2, "XZ": 2, "BC": 1, "BD": 1, "AD": 3, "CE": 1, "AC": 2]
์ด์ ๊ฐ์ฅ ํฐ ๋ฑ์ฅํ์ ๊ฐ์ ๊ตฌํ๊ณ , ํด๋น ๊ฐ์ value๋ก ๊ฐ์ง๋ key๋ฅผ ๋ชจ๋ ์ฐพ์ ์ ๋ต ๋ฐฐ์ด์ ๋ฃ๋ ๊ณผ์ ์ ๊ฐ ๊ธธ์ด์ ์กฐํฉ๋ค์ ๋ํด ๋ฐ๋ณตํ๋ฉด ์ ๋ต์ ์ป๊ฒ๋ฉ๋๋ค.
์ฝ๋
'๐๐ปโโ๏ธ ํผ-์์ค > ๐ฃ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote