๐ง๐ป๐ป iOS ๊ฐ๋ฐ/Swift - Algorithm - Solutions(16)
-
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ์์
๐ค ํ์ด ๊ณผ์ n๋ช ์ ๊ถํฌ์ ์๊ฐ ๋ฑ์ฅํ๊ณ 1๋ถํฐ n๊น์ง ๋ฒํธ๋ฅผ ๋งค๊ธฐ๋๋ฐ์. ๊ทธ๋ค ๊ฐ์ 1๋ 1 ๋งค์นญ ๊ฒฐ๊ณผ๊ฐ results๋ฐฐ์ด์ ํตํด ์ฃผ์ด์ง๋๋ค. ๊ฐ๊ฐ์ ๋ฐฐ์ด์๋ ์น์์ ํจ์์ ์์๋ฅผ ์์๋๋ก ๋ด์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค. ์ด ์ ๋ณด๋ฅผ ๊ทธ๋ํ๋ก ํํํ๊ณ ๊ฐ๊ฐ์ ์ ์๋ง๋ค DFS๋ก ๊ทธ๋ํ ํ์ํ๋ฉฐ ์์ ๋ณด๋ค ๊ฐํ ์ฌ๋์ ์, ์์ ๋ณด๋ค ์ฝํ ์ฌ๋์ ์๋ฅผ ๊ตฌํด๋ณด๊ณ ๊ทธ ํฉ์ด n - 1์ด ๋๋ฉด ์์๋ฅผ ์ ์ ์๋ค๊ณ ํ๋จํ ์ ์๊ฒ ์ต๋๋ค. ๋จผ์ ๊ถํฌ ์ ์์ ์๋งํผ ์์ ๋ณด๋ค ๊ฐํ ์ฌ๋์ ์์ ์์ ๋ณด๋ค ์ฝํ ์ฌ๋์ ์๋ฅผ ์ ์ฅํ ๋ฐฐ์ด ๋ ๊ฐ๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ๊ฒฝ๊ธฐ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์ธ์ ๋ฆฌ์คํธ ํํ๋ก ๊ทธ๋ํ๋ฅผ ํํํด๋ณด์์ต๋๋ค. ์ค๋ ์ง์์ ๊ธฐ์ค ์ ์๋ผ๊ณ ํ์์ ๋ ๋ถํ์์ ํด๋น ์ ์๋ณด๋ค ์ฝํ ์ ์๋ค์ ๋ฆฌ์คํธ์ ๋๋ค. ์ด์ ๊ฐ๊ฐ์ ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก..
2021.06.10 -
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ์ฌ์ฉ์
๐ค ํ์ด ๊ณผ์ user_id์ banned_id๊ฐ String ๋ฐฐ์ด์ ํํ๋ก ์ฃผ์ด์ง๊ฒ๋ฉ๋๋ค. banned_id๋ฅผ ๊ธฐ์ค์ผ๋ก user_id๋ฅผ ํ์ํ๋ฉฐ ๋งค์นญ๋๋ id๋ค์ ์ธ๋ฑ์ค๋ค์ ๋ฌถ์ด์ ์ ์ฅํด์ค๋ค ๋งค์นญ ๊ฐ๋ฅํ ๋ชจ๋ ์ผ์ด์ค์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์์ต๋๋ค. ์กฐํฉ์ ์ฌ๊ทํจ์๋ฅผ ํตํด์ ๊ตฌํด๋ณด์์ผ๋ฉฐ ํ๋์ banned_id์ ๋งค์นญ๋๋ user_id์ ์ธ๋ฑ์ค๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค Set์ ์ ์ฅํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ์์ต๋๋ค. ๐ฆ ๋ฌธ์ ํ์ด & ์ฝ๋ import Foundation func solution(_ user_id: [String], _ banned_id: [String]) -> Int { // ์ธ๋ฑ์ค๋ผ๋ฆฌ ๋งค์นญ, ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ banned_id์ ์ธ๋ฑ์ค,๊ฐ์ ๋งค์นญ๋๋ user_id๋ค์ ์ธ๋ฑ์ค ๋ฐฐ์ด var matc..
2021.06.09 -
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ ์ฐ๊ฒฐํ๊ธฐ
๐ต๐ป ๋ฌธ์ ํด์ n๊ฐ์ ์ฌ ์ฌ์ด์ ๋ค๋ฆฌ๋ฅผ ๊ฑด์คํ๋ ๋น์ฉ(costs)์ด ์ฃผ์ด์ง ๋, ์ต์์ ๋น์ฉ์ผ๋ก ๋ชจ๋ ์ฌ์ด ์๋ก ํตํ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค ๋ ํ์ํ ์ต์ ๋น์ฉ์ return ํ๋๋ก solution์ ์์ฑํ์ธ์. ์ ํ์ฌํญ ์ฌ์ ๊ฐ์ n์ 1 ์ด์ 100 ์ดํ์ ๋๋ค. costs์ ๊ธธ์ด๋ ((n-1) * n) / 2 ์ดํ์ ๋๋ค. ์์์ i์ ๋ํด, costs[i][0] ์ costs[i] [1]์๋ ๋ค๋ฆฌ๊ฐ ์ฐ๊ฒฐ๋๋ ๋ ์ฌ์ ๋ฒํธ๊ฐ ๋ค์ด์๊ณ , costs[i] [2]์๋ ์ด ๋ ์ฌ์ ์ฐ๊ฒฐํ๋ ๋ค๋ฆฌ๋ฅผ ๊ฑด์คํ ๋ ๋๋ ๋น์ฉ์ ๋๋ค. ๊ฐ์ ์ฐ๊ฒฐ์ ๋ ๋ฒ ์ฃผ์ด์ง์ง ์์ต๋๋ค. ๋ํ ์์๊ฐ ๋ฐ๋๋๋ผ๋ ๊ฐ์ ์ฐ๊ฒฐ๋ก ๋ด ๋๋ค. ๋ชจ๋ ์ฌ ์ฌ์ด์ ๋ค๋ฆฌ ๊ฑด์ค ๋น์ฉ์ด ์ฃผ์ด์ง์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ ์ฌ ์ฌ์ด์ ๊ฑด์ค์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ด ๋..
2021.06.07 -
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ์๋ฌผ์ ์ ์ด์
๐ต๐ป ๋ฌธ์ ํด์ ๊ณ ๊ณ ํ์์ธ "ํ๋ธ"๋ ๊ณ ๋ ์ ์ ์ง์์ ๋ณด๋ฌผ๊ณผ ์ ์ ์ด ๊ฐ๋ํ ๊ฒ์ผ๋ก ์ถ์ ๋๋ ๋น๋ฐ์ ๋ฌธ์ ๋ฐ๊ฒฌํ์์ต๋๋ค. ์ ๊ฒจ์๋ ์๋ฌผ์ ๋ ๊ฒฉ์ ํ ์นธ์ ํฌ๊ธฐ๊ฐ 1 x 1์ธ N x N ํฌ๊ธฐ์ ์ ์ฌ๊ฐ ๊ฒฉ์ ํํ์ด๊ณ ํน์ดํ ๋ชจ์์ ์ด์ ๋ M x M ํฌ๊ธฐ์ธ ์ ์ฌ๊ฐ ๊ฒฉ์ ํํ๋ก ๋์ด ์์ต๋๋ค. ์๋ฌผ์ ์๋ ํ์ด ํ์ฌ ์๊ณ ์ด์ ๋ํ ํ๊ณผ ๋๊ธฐ ๋ถ๋ถ์ด ์์ต๋๋ค. ์ด์ ๋ ํ์ ๊ณผ ์ด๋์ด ๊ฐ๋ฅํ๋ฉฐ ์ด์ ์ ๋๊ธฐ ๋ถ๋ถ์ ์๋ฌผ์ ์ ํ ๋ถ๋ถ์ ๋ฑ ๋ง๊ฒ ์ฑ์ฐ๋ฉด ์๋ฌผ์ ๊ฐ ์ด๋ฆฌ๊ฒ ๋๋ ๊ตฌ์กฐ์ ๋๋ค. ์๋ฌผ์ ์์ญ์ ๋ฒ์ด๋ ๋ถ๋ถ์ ์๋ ์ด์ ์ ํ๊ณผ ๋๊ธฐ๋ ์๋ฌผ์ ๋ฅผ ์ฌ๋ ๋ฐ ์ํฅ์ ์ฃผ์ง ์์ง๋ง, ์๋ฌผ์ ์์ญ ๋ด์์๋ ์ด์ ์ ๋๊ธฐ ๋ถ๋ถ๊ณผ ์๋ฌผ์ ์ ํ ๋ถ๋ถ์ด ์ ํํ ์ผ์นํด์ผ ํ๋ฉฐ ์ด์ ์ ๋๊ธฐ์ ์๋ฌผ์ ์ ๋๊ธฐ๊ฐ ๋ง๋์๋ ์๋ฉ๋๋ค. ๋ํ ์๋ฌผ์ ์ ..
2021.06.03 -
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ๋ค๋จ๊ณ ์นซ์ ํ๋งค
๐ต๐ป ๋ฌธ์ ํด์ ๋ฏผํธ๋ ๋ค๋จ๊ณ ์กฐ์ง์ผ๋ก ์นซ์์ ํ๋งคํ๋ ์ฌ์ ์ ํ๊ณ ์์ต๋๋ค. ์ด ํผ๋ผ๋ฏธ๋ ์์ ์กฐ์ง์ ํ๋งค์์ด ์นซ์์ ํ๋งคํ์์ ๋, ๊ทธ ์์ต๊ธ์ 10%๋ฅผ ์์ ์ ์๊ฐํด์ค ํ๋งค์์๊ฒ ๋ถ๋ฐฐํฉ๋๋ค. ๋ถ๋ฐฐ๋ฐ์ ํ๋งค์๋ ๋๊ตฐ๊ฐ์ ์๊ฐ๋ฅผ ๋ฐ์์๋ค๋ฉด ๋ถ๋ฐฐ๋ฐ์ ๊ธ์ก์ 10%์ ์์ ์ ์์ต๊ธ 10%์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ฐฐํฉ๋๋ค. ์ด๋ฐ ์์ผ๋ก ๋ชจ๋ ํ๋งค์์ ์์ต๊ธ์ ์ ์ฐํ์์ ๋, ๊ทธ ๊ธ์ก์ ๋ฆฌํดํ๋ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์ ์์ ์ ๊ณตํ๋ ์์๋ฅผ ๋ด ์๋ค! ํ๋งค์ ํ๋งค ์๋ ์์ต๊ธ young 12 1,200์ john 4 400์ tod 2 200์ emily 5 500์ mary 10 1,000์ ๋ฌธ์ ์์ ์ฃผ์ด์ง ์์ต๊ธ๊ณผ ์๊ฐ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ์กฐ์ง๋๋ฅผ ๊ทธ๋ ค๋ดค์ต๋๋ค. ํ๋์์ผ๋ก ์น ํด์ง ์ฌ๊ฐํ๋ค์ ์นซ์์ ํ๋งคํ์ฌ ์์ต๊ธ์ด ๋ฐ์ํ ํ๋งค์..
2021.06.02 -
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ํฉ์น ํ์ ์๊ธ
๐ต๐ป ๋ฌธ์ ํด์ ๋ฌด์ง์ ์ดํผ์น๋ ์ต๊ทผ ์ฆ์์ง ์ผ๊ทผ ๋๋ฌธ์ ํ์๋ฅผ ํ๊ณ ๊ท๊ฐํ๋ ์ผ์ด ๋์ด๋ฌ์ต๋๋ค. ๊ทธ๋์ ํ์๋ฅผ ๊ฐ์ด ํ๊ณ ๊ท๊ฐํ์ฌ ์๊ธ์ ์ต๋ํ ์ค์ฌ๋ณด๋ ค๊ณ ํฉ๋๋ค. ํจ๊ป ์ถ๋ฐํ๋ ์ง์ s, ๊ทธ๋ฆฌ๊ณ ๊ฐ์์ ์ง์ด ์์นํ๋ a, b ์ง์ ๊ณผ ์ง์ ๊ณผ ์ง์ ์ฌ์ด์ ์์์๊ธ์ด fare ๋ฐฐ์ด๋ก ์ฃผ์ด์ง ๋ ์ต์์๊ธ์ ๊ณ์ฐํด๋ด ์๋ค. [์ ํ์ฌํญ] ์ง์ ๊ฐฏ์ n์ 3 ์ด์ 200 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์ง์ s, a, b๋ 1 ์ด์ n ์ดํ์ธ ์์ฐ์์ด๋ฉฐ, ๊ฐ๊ธฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๋๋ค. ์ถ๋ฐ์ง์ , A์ ๋์ฐฉ์ง์ , B์ ๋์ฐฉ์ง์ ์ ์๋ก ๊ฒน์น์ง ์์ต๋๋ค. ์๊ธ f๋ 1 ์ด์ 100,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์ถ๋ฐ์ง์ s์์ ๋์ฐฉ์ง์ a์ b๋ก ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ๐ค ํ์ด ๊ณผ์ ๋จผ์ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๊ทธ๋ํ ๋ฌธ..
2021.06.01