ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] ํ•™์ƒ ๋ฒˆํ˜ธ 1235
    ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2023. 6. 6. 19:40

    1. ๋ฌธ์ œ ๋งํฌ

     

    https://www.acmicpc.net/problem/1235

     

    ๋ฌธ์ œ

    ์ด๋ฒˆ์—๋Š” ํ•™์ƒ๋“ค์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•™์ƒ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” 0๋ถ€ํ„ฐ 9 ์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด๋กœ, ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” ์„œ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค.

    ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•ด ๋†“๊ณ  ๋ณด๋‹ˆ, ๊น€์ง„์˜ ์กฐ๊ต๋Š” ์–ด์ฉŒ๋ฉด ๋ฒˆํ˜ธ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๊ธด ๊ฒƒ์€ ์•„๋‹Œ๊ฐ€ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ 7์ž๋ฆฌ์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๋ณด์ž.

    ์ด๋ฆ„ ๋ฒˆํ˜ธ
    ์˜ค๋ฏผ์‹ 1212345
    ๊น€ํ˜•ํƒ 1212356
    ์ด๋™ํ˜ธ 0033445

    ์ด์ฒ˜๋Ÿผ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๊ตณ์ด 7์ž๋ฆฌ๋กœ ํ•˜์ง€ ์•Š๊ณ , ๋’ค์—์„œ ์„ธ ์ž๋ฆฌ๋งŒ์„ ์ถ”๋ ค์„œ ๋‚จ๊ฒจ ๋†“์•„๋„ ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

    ์ด๋ฆ„ ๋ฒˆํ˜ธ
    ์˜ค๋ฏผ์‹ 345
    ๊น€ํ˜•ํƒ 356
    ์ด๋™ํ˜ธ 445

    ํ•˜์ง€๋งŒ ์„ธ ์ž๋ฆฌ๋ณด๋‹ค ์ ๊ฒŒ ๋‚จ๊ฒจ ๋†“์•„์„œ๋Š” ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.

    ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด ์กŒ์„ ๋•Œ, ๋’ค์—์„œ k์ž๋ฆฌ๋งŒ์„ ์ถ”๋ ค์„œ ๋‚จ๊ฒจ ๋†“์•˜์„ ๋•Œ ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ์˜ k๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค

    ์ž…๋ ฅ

    ์ฒซ์งธ ์ค„์—๋Š” ํ•™์ƒ์˜ ์ˆ˜ N(2≤N≤1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ํ•™์ƒ์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” ์„œ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™์œผ๋ฉฐ, 0๋ถ€ํ„ฐ 9 ์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

    ์ถœ๋ ฅ

    ์ฒซ์งธ ์ค„์— ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ k๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

    ๋”๋ณด๊ธฐ

    ์˜ˆ์ œ ์ž…๋ ฅ

    3
    1212345
    1212356
    0033445

    ์ •๋‹ต : 3

     

    2. ์ฝ”๋“œ

    let input = Int(readLine()!)!
    var studentList : [String] = []
    var result : Int = 0
    
    for _ in 0..<input{
        let str = String(readLine()!)
        studentList.append(str)
    }
    
    let length = studentList[0].count   // ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” ์„œ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๊ธธ์ด๋Š” ํ•ญ์ƒ ๊ฐ™๋‹ค
    
    for i in (0..<length).reversed(){   // 0..<7์„ ๋ฐ˜๋Œ€๋กœ 6๋ถ€ํ„ฐ 0๊นŒ์ง€
        var temp = Set<String>()        // ์ž๋ฅธ ๋ฒˆํ˜ธ๋ฅผ ์ค‘๋ณต ์ฒ˜๋ฆฌ ์•ˆ๋˜๊ฒŒ๋”
        for j in studentList{
    
            let startIndex = j.index(j.startIndex, offsetBy: i)     //์‹œ์ž‘ ์ง€์ ์„ i๋กœ ํ•œ ์ด์œ ๋Š” i๋Š” ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์—
            let endIndex = j.index(j.startIndex, offsetBy: length - 1)  // ๋๋‚˜๋Š” ์ง€์ ์€ ํ•ญ์ƒ 6์ด๊ธฐ ๋•Œ๋ฌธ์—
            let subString = j[startIndex...endIndex]    //๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ
            temp.insert(String(subString))  // temp์— ๋„ฃ์–ด ํŒ๋‹จ
        }
        if temp.count == studentList.count{     // ์œ„์—์„œ ์ž˜๋ผ์„œ ๋„ฃ์€ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ ํ•™์ƒ ๋ฆฌ์ŠคํŠธ ๊ฐœ์ˆ˜๋ž‘ ๊ฐ™์œผ๋ฉด
            result = length - i     // ์ด ๊ธธ์ด์—์„œ ํ˜„์žฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” i์˜ ๊ฐ’ ๋นผ๊ธฐ
            break
        }
    }
    
    print(result)

     

    3. ์ฝ”๋“œ ์„ค๋ช…

    ์ž…๋ ฅ๋ฐ›์€ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ studentList์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    temp๋ผ๋Š” ๋นˆ Set์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Set์€ ์ˆœ์„œ๋Œ€๋กœ ์ž˜๋ฆฐ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„์ž…๋‹ˆ๋‹ค.

    subString์ด ๋’ค์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ์ž˜๋ฆฐ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. 
    ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ, ๊ฐ ๋ฒˆํ˜ธ๋ฅผ temp์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    for i in (0.. <length). reversed() ์ด์ชฝ์—์„œ ๋ฐ˜๋ณต์„ ๋Œ๋ฉด์„œ ์ƒˆ๋กœ์šด temp์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

     

    temp์— ์žˆ๋Š” ๋ฒˆํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ studentList์˜ ๊ธธ์ด์™€ ๊ฐ™์œผ๋ฉด, ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ตœ์†Œ์˜ k๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

Designed by Tistory.