suvera-dev ๐Ÿฅฆ

20230406 TIL ๋ณธ๋ฌธ

Private/TIL

20230406 TIL

suvera 2023. 4. 7. 02:50

4์ผ / 5์ผ์€ ๋‹ค๋ฅธ ์ผ์ •์œผ๋กœ ์ธํ•ด .. ๊ณต๋ถ€๋ฅผ ๋ชปํ•ด์„œ 3์ผ๋งŒ์— ๋Œ์•„์™”๋„ค์š” ใ…Ž

์˜ค๋žœ๋งŒ์— ๋…ธ๋™์„ ํ–ˆ๋”๋‹ˆ .. ^^ ๊ณต๋ถ€๋ฅผ ํ•  ์ฒด๋ ฅ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค ใ…œใ…œ ใ…Ž

ํ•˜์ง€๋งŒ ์˜ค๋Š˜์€ ํ”ผ๊ณคํ•จ์„ ๊พธ์—ญ๊พธ์—ญ ๋ˆ„๋ฅด๊ณ .. ๋ชฌ์Šคํ„ฐ ์šธํŠธ๋ผ์™€ ํ•จ๊ป˜ ์ฑ…์ƒ์— ์•‰์•˜์Šด๋‹ค..

 

์˜ค๋Š˜ ํ•œ ๊ฒƒ 

1. ์ž์†Œ์„œ ํ‹€ ์žก๊ธฐ

2. ํ”Œ๊ทธ๋จธ์Šค 1๋ฌธ์ œ / ๋ฐฑ์ค€ 1๋ฌธ์ œ.

3. ํŒŒ์ด์ฌ ๋ณต์Šต

4. SQL ๋ณต์Šต

 

๋‚ด์ผ์€ ํŒŒ์ด์ฌ์œผ๋กœ ๋ด์•ผํ•˜๋Š” ์ฝ”ํ…Œ๊ฐ€ ์žˆ์–ด์„œ ํŒŒ์ด์ฌ๊ณผ SQL ๋ณต์Šต์„ ํ–ˆ์Šต๋‹ˆ๋‹น !

ํŒŒ์ด์ฌ ๋‹ค ๊นŒ๋จน์–ด์„œ ๊ฑฐ์˜ ๋ฐ˜ํฌ๊ธฐ ์ƒํƒœ์ง€๋งŒ ์ผ๋‹จ ํ•ด๋ด์•ผ์ ธ ๋ชจ...

 

์˜ค๋Š˜ ํ‘ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ๋ฆฌ๋ทฐ ํ•ด๋ณด๊ฒ ์๋‹ˆ๋‹น. ์ด๊ฑด ๋˜ ์Šค์œ„ํ”„ํŠธ 

 

1. '110 ์˜ฎ๊ธฐ๊ธฐ'

https://school.programmers.co.kr/learn/courses/30/lessons/77886

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

- 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ž„์˜์˜ ๋ฌธ์ž์—ด s์—์„œ 110์„ ์˜ฎ๊ฒจ์„œ ์‚ฌ์ „์ˆœ์œผ๋กœ ๋” ์•ž์— ์œ„์น˜ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ.

 

๊ทธ๋ฆฌ๋””ํ•œ ๊ทœ์น™๋งŒ ์ฐพ์œผ๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ(์ธ์ค„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค๋งŒ)
ํ‘ธ๋Š” ๊ณผ์ •์—์„œ 110์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ถ€๋ถ„์„ ๋†“์ณ์„œ ์กฐ๊ธˆ ๊ผฌ์—ฌ์„œ ๋‹ค์‹œ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ใ…œใ…œ

3๊ธ€์ž ์งœ๋ฆฌ ๋ฌธ์ž์—ด 000 , 001, ... 111 ์ค‘์—์„œ 110 ์€ 111 ๋‹ค์Œ์œผ๋กœ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋’ค์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
111์ธ ๊ฒƒ๋งŒ ๋ฐ”๊พธ๋Š”๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ค์•ผํ•ด์š” !

 

์ผ๋‹จ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋”ฐ์ ธ์คฌ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๋‚˜๋„ค์œ ใ… ใ… 

์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ ค ์•ˆํ•˜๊ณ  ์šฐ์„  ์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ ์งฐ๋”๋‹ˆ ๋…ธ๋‹ต์ด๋„ค์š”..

 

 

- replacingOccurrences ๋ง๊ณ  ์ธ๋ฑ์Šค๋กœ ํ•œ๋ฒˆ์— ์ œ๊ฑฐํ•ด์ฃผ๊ธฐ.

- 111 ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ณผ์ • ๊ฐœ์„ ํ•˜๊ธฐ

 

๋“ฑ๋“ฑ ๊ฐœ์„  ์ž‘์—…์„ ๋” ํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹น.

์˜ค๋Š˜ ์•ˆ์— ํ’€ ์ˆ˜ ์žˆ์„์ค„ ์•Œ๊ณ  ์˜ฌ๋ฆฌ๋ คํ–ˆ๋Š”๋ฐ ใ…‹ใ…Žใ…‹ ์‹คํŒจ.

๋ˆ„๊ตฐ๊ฐ€ ๊ตฌ๊ธ€์— ์˜ฌ๋ ค๋‘” ์ฝ”๋“œ๋„ ์—†์–ด์„œ ใ…‹ใ…‹ ํžŒํŠธ๋งŒ์œผ๋กœ ๋‹ต ์ฐพ์•„์•ผํ•ด์˜ค..

 

 

2. ๊ณต์œ ๊ธฐ ์„ค์น˜ 

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

 

2110๋ฒˆ: ๊ณต์œ ๊ธฐ ์„ค์น˜

์ฒซ์งธ ์ค„์— ์ง‘์˜ ๊ฐœ์ˆ˜ N (2 ≤ N ≤ 200,000)๊ณผ ๊ณต์œ ๊ธฐ์˜ ๊ฐœ์ˆ˜ C (2 ≤ C ≤ N)์ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ง‘์˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” xi (0 ≤ xi ≤ 1,000,000,000)๊ฐ€

www.acmicpc.net

- C๊ฐœ์˜ ๊ณต์œ ๊ธฐ๋ฅผ N๊ฐœ์˜ ์ง‘์— ์„ค์น˜, 2๊ฐœ์˜ ๊ณต์œ ๊ธฐ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ตœ๋Œ€๋กœ !

1) house ๋ฐฐ์—ด ์ •๋ ฌ ํ›„ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ 1, ์ตœ๋Œ€๊ฑฐ๋ฆฌ๋ฅผ ๋ ์ขŒํ‘œ - ์ฒซ๋ฒˆ์งธ ์ขŒํ‘œ๋กœ ์„ค์ •
2) mid = ์ค‘๊ฐ„๊ฑฐ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ mid ๋งŒํผ์˜ ๊ฑฐ๋ฆฌ ์ฐจ์ด๋กœ ์„ค์น˜ํ•œ๋‹ค.
3) ์„ค์น˜ํ•œ ๊ฒฐ๊ณผ๊ฐ€ C๊ฐœ์˜ ๊ณต์œ ๊ธฐ๋ณด๋‹ค ์ ๊ฒŒ ์„ค์น˜๋˜์—ˆ์„ ๊ฒฝ์šฐ ๊ฑฐ๋ฆฌ๋ฅผ ์ขํ˜€์•ผํ•˜๊ณ , C๊ฐœ์˜ ๊ณต์œ ๊ธฐ๋ณด๋‹ค ๋งŽ์ด ์„ค์น˜๋  ๊ฒฝ์šฐ ๊ฑฐ๋ฆฌ๋ฅผ ๋Š˜๋ ค์•ผํ•จ.
4) ๋ฐ˜๋ณต 
    let line = readLine()!.split(separator: " ").map { Int(String($0))! }
    let n = line[0]
    let share = line[1]

    var house: [Int] = []

    for _ in 0..<n {
        house.append(Int(readLine()!)!)
    }

    house = house.sorted(by: <)
    // print(house)

    var result = 0
    var start = 1
    var end = house[n-1] - house[0]

    while start <= end {
        let mid = (start + end)/2

        var count = 1
        var value = house[0]

        for i in 1..<house.count {
            if house[i] >= value + mid {
                // ์ขŒํ‘œ ๊ฐ’์ด ์ด์ „์— ์„ค์น˜๋œ ๊ณต์œ ๊ธฐ์™€ ๊ฑฐ๋ฆฌ ์ฐจ์ด ๋ณด๋‹ค ์ปค์•ผ ์„ค์น˜ ๊ฐ€๋Šฅ !
                value = house[i] // ์„ค์น˜ ?
                count += 1
            }
        }

        if count >= share {
            // c๊ฐœ์ด์ƒ์˜ ๊ณต์œ  ์„ค์น˜ -> ๊ฑฐ๋ฆฌ ์ฐจ์ด๋ฅผ ๋” ๋Š˜๋ ค๋ณด์ž
            start = mid + 1
            result = mid
        } else {
            // c๊ฐœ์ด์ƒ์˜ ๊ณต์œ ๊ธฐ ์„ค์น˜ ๋ถˆ๊ฐ€ -> ๊ฑฐ๋ฆฌ์ฐจ์ด ์ขํžˆ๊ธฐ
            end = mid - 1
        }


    }

    print(result)

 

SQL์ด๋ž‘ ํŒŒ์ด์ฌ ๋ณต์Šต๋„ ์•„์ง ๋‚จ์•˜๋Š๋ฐ .. ๋„˜ ์กธ๋ฆฌ๋„ค์šœ.. ๋‚ผ ์ผ์ฐ์ด๋Ÿฌ๋‚˜์„œ ํ•ด๋ณด๊ฒ ์Šด๋ฏธ๋‹ค..

ํŒŒ์ด์ฌ์„ ์„œ๋ธŒ ์–ธ์–ด๋กœ ๋ฌธ์ œ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ์กฐ๊ธˆ์”ฉ ์—ฐ์Šตํ•ด์•ผ๊ฒŒ์จ์š” !!

๊ฐ€๋” SQL ๋„ ๊ฐ™์ด ๋‚˜์˜ค๋Š” ๊ณณ๋„ ์žˆ๊ณ .. ์Šค์œ„ํ”„ํŠธ๊ฐ€ ์ง€์› ์•ˆ๋˜๋Š” ๊ณณ๋„ ์žˆ์–ด์„œ

๊ทธ๋ƒฅ ์„œ๋ธŒ๋กœ ํ•ด๋‘๋ ค๊ณ  ํ•ฉ๋ฏธ๋™. ์–ด์ฐจํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋กœ์ง์€ ๊ฐ™์œผ๋‹ˆ๊นŒ ๋ฌธ๋ฒ•๋งŒ ์กฐ๊ธˆ ๋ณต์Šตํ•˜๋ฉด ๋˜๊ฒ ์ฃ ...

 

๋‚ด์ผ์€ ์ฝ”ํ…Œ ๋๋‚˜๊ตฌ.. ์ž์†Œ์„œ ๋ฒผ๋ฝ์น˜๊ธฐ ํ•ด์•ผ๊ฒ ๋„ค์šฅ.. ํ•˜ํ•˜.. ๊ตฟ๋ฐค.. 

 

'Private > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

20230403 TIL  (2) 2023.04.04
20230402 TIL  (0) 2023.04.02
20230401 TIL  (0) 2023.04.02
20230331 TIL  (1) 2023.04.01
20230330 TIL  (2) 2023.03.31
Comments