-
[ํ๋ก๊ทธ๋๋จธ์ค] 1์ฐจ ๋น๋ฐ์ง๋์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ 2023. 6. 8. 00:47
1. ๋ฌธ์ ๋งํฌ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
https://school.programmers.co.kr/learn/courses/30/lessons/17681
2. ์ฝ๋
func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] { var answer: [String] = [] var count : Int = 0 var str : String = "" func makeMap(arr: [Int]) -> [Int]{ var mapArr : [Int] = [] for i in arr{ var tempArr : [Int] = [] // ํ๋์ฉ ๊ฒฐ๊ณผ๊ฐ์ ๋ฃ๊ธฐ ์ํด ์์๋ก ๋ง๋ ๋ฐฐ์ด var share : Int = i // ๋ชซ var remain : Int = 0 // ๋๋จธ์ง while share != 0{ //2๋ก ๊ณ์ ๋๋๊บผ์ฌ์ ๋ง์ง๋ง์ 0์ด๋๋ค. remain = share % 2 // 2๋ก ๋๋๋ฉด 0,1๋ก ๋๋จธ์ง๊ฐ ๋์ด share = share / 2 // ๊ณ์ ๋๋ ์ผ ํด์ tempArr.append(remain) // remain ๊ฒฐ๊ณผ๊ฐ์ ๋ฐฐ์ด์ ๋ฃ์ด์ค } if tempArr.count < n { // 1,2(2),4(3),8(4),16(5),64(6) // ๋ฐฐ์ด์์ ๊ฐฏ์ ์ธ์ ๋ถ์กฑํ ๋ถ๋ถ 0์ผ๋ก ์ฑ์ฐ๊ธฐ for _ in 0..<n - tempArr.count{ // ๋ถ์กฑํ ๊ฐฏ์๋งํผ ๋ฐ๋ณต ๋ฐฐ์ด ๋ค์๋ค๊ฐ 0์ฑ์ฐ๊ธฐ tempArr.append(0) } } tempArr = tempArr.reversed() // ๋ฐฐ์ด ๊ฐ์ ๋ฐ์ ์ํค๊ธฐ mapArr.append(contentsOf: tempArr) } return mapArr } // ๋ฉ์๋ ํธ์ถํด์ ๋ฐํ ๋ฐ์ ๋ฐฐ์ด์ ๊ฐ์ด zip() ์ด์ฉํด์ ๋๋ ค์ ํ์ธ for (arr1,arr2) in zip(makeMap(arr: arr1), makeMap(arr: arr2)){ count += 1 // ์นด์ดํ if arr1 == 1 || arr2 == 1 { // ๋์ค ํ๋๋ผ๋ 1์ด๋ผ๋ฉด ๋ฒฝ str += "#" }else{ // ์๋์๋ ๋๋ค 0 ์ด๋ฏ๋ก ๋น์นธ str += " " } if count == n { // n๊ฐ์ฉ ์๋ผ์ผํด์ answer.append(str) // ์ ๋ต ๋ฐฐ์ด์ ๋ฃ๊ณ count = 0 // ์นด์ดํ 0์ผ๋ก ์ค์ str = "" // ๋ฌธ์์ด ์ด๊ธฐํ } } return answer }
3. ์ฝ๋ ์ค๋ช
makeMap ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง arr1๊ณผ arr2๋ฅผ ์ด์ง์๋ก ๋ณํํ์ฌ ๋ฐฐ์ด๋ก ๋ง๋ค์์ต๋๋ค.
์ด์ง์๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๊ฐ ์ซ์๋ฅผ ๊ณ์ํด์ 2๋ก ๋๋๊ณ , ๋๋จธ์ง๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํ์ฌ ์ด์ง์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด์ง์์ ๊ธธ์ด๊ฐ n๋ณด๋ค ์์ ๋๋ 0์ผ๋ก ์ฑ์์ฃผ๊ณ , ๋ฐฐ์ด์ ๋ฐ์ ์์ผ ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ์ถ๊ฐํ์์ต๋๋ค.
๋ ๋ฐฐ์ด์ ๋์์ ์ํํ๊ธฐ ์ํด zip ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํจ๊ป ๋ฐ๋ณต๋ฌธ์ ์คํํ์ต๋๋ค.๋ง์ฝ arr1 ๋๋ arr2์ ๊ฐ์ด 1์ด๋ผ๋ฉด ๋ฒฝ์ ์๋ฏธํ๋ฏ๋ก "#"์ ์ถ๊ฐํด์ค๋๋ค.
๋งค ์ํ๋ง๋ค ๋ฌธ์์ด์ str์ ์ ์ฅํ๋ ์ด์ ๋ ๊ฐ ์ซ์๋ง๋ค ๊ธธ์ด๊ฐ n์ธ ๋ฌธ์์ด์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.count๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ , ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ์ถ๊ฐํ ํ ์ด๊ธฐํํฉ๋๋ค.
'์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ง๋ (0) 2023.06.29 [ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ ์ฆ4๋ธ๋ก (0) 2023.06.25 [๋ฐฑ์ค] ํ์ ๋ฒํธ 1235 (2) 2023.06.06 [๋ฐฑ์ค] ์ด์ ๊ณ์ฐ 2644๋ฒ (0) 2023.06.04 [๋ฐฑ์ค] ๋ฐ์ด๋ฌ์ค 2606๋ฒ (0) 2023.06.03