์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0 _ Swift] Day47 7์˜ ๊ฐœ์ˆ˜

โŒจ๏ธ Cording Test/Programmers

by AHN.Jihyeon 2024. 6. 25. 11:09

๋ณธ๋ฌธ


 

๐Ÿ“„ ๋ฌธ์ œ 1. 7์˜ ๊ฐœ์ˆ˜

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/120912

 

 

 

 

โœ…  ์ œ์ถœ ์ฝ”๋“œ

import Foundation

func solution(_ array:[Int]) -> Int {
    var str = ""
    var count = 0
    
    //์ •์ˆ˜ ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
    for i in array {
        str += String(i)
    }
    
    //๋ฌธ์ž์—ด์„ ๋‹ค์‹œ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด 7๊ณผ ๊ฐ™๋‹ค๋ฉด count +1
    for j in str {
        if Int(String(j)) == 7 {
            count += 1
        }
    }
    return count
}

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋‹ค์‹œ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด 7๊ณผ ๊ฐ™์€์ง€ ํ™•์ธํ•œ๋‹ค. 

์ด ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ํƒ€์ž… ๋ณ€ํ™˜์ด ์žˆ์–ด ํšจ์œจ์ ์œผ๋กœ ๋ณด์ด์ง„ ์•Š์•˜๋‹ค. 

 

์กฐ๊ธˆ ๋” ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐœ๊ฟ€ ์ˆ˜ ์—†๋Š”์ง€ ๊ณ ๋ฏผํ•ด๋ณธ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

import Foundation

func solution(_ array: [Int]) -> Int {
    var count = 0
    
    for i in array {
        let str = String(i)
        for j in str {
            if j == "7" {
                count += 1
            }
        }
    }
 
    return count
}

for๋ฌธ์„ ์ค‘์ฒฉํ•ด์„œ ์‚ฌ์šฉํ•œ ํ’€์ด์ด๋‹ค. 

 

 

 

๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด

import Foundation

func solution(_ array:[Int]) -> Int {
return array.map{String($0)}.joined().filter{$0 == "7"}.count
}

๊ทธ๋ฆฌ๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ค„ ์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. 

์‚ฌ์‹ค ๊ณ ์ฐจํ•จ์ˆ˜ ๊ณต๋ถ€๋ฅผ ๊ทธ๋™์•ˆ์— ๋ฏธ๋ค„์™€์„œ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด๋ฅผ ๋ชปํ•˜๊ณ  ์žˆ์—‡๋‹ค...

์˜ค๋Š˜ ๋“œ๋””์–ด ๋ฏธ๋ค„์™”๋˜ map๊ณผ filter ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

 

 

 

์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ์ฒ˜์Œ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ •๋‹ต์ด ๋„์ถœ๋˜์ง€ ์•Š์•„ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณธ ์ฝ”๋“œ์ด๋‹ค. 

var array = [7, 77, 17]

var str1 = array.map(String.init)
//์ถœ๋ ฅ: ["7", "77", "17"]

var str2 = array.map(String.init).filter{$0 == "7"}
//์ถœ๋ ฅ: ["7"]


var str3 = array.map{String($0)}
//์ถœ๋ ฅ: ["7", "77", "17"]

var str4 = array.map{String($0)}.joined()
//์ถœ๋ ฅ: 77717

var str5 = array.map{String($0)}.joined().filter{$0 == "7"}
//์ถœ๋ ฅ: 7777

var str6 = array.map{String($0)}.joined().filter{$0 == "7"}.count
//์ถœ๋ ฅ: 4

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ