Notice
Recent Posts
Recent Comments
Link
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ƒฅ๋ƒ 

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv 1. ์‹คํŒจ์œจ ( js, python) ๋ณธ๋ฌธ

์ฝ”ํ…Œ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv 1. ์‹คํŒจ์œจ ( js, python)

sueeee-e 2024. 11. 18. 16:55

๐Ÿ”…๋ฌธ์ œ๐Ÿ”…

2019 KAKAO BLIND RECRUITMENT - ์‹คํŒจ์œจ

์ž…๋ ฅ๊ฐ’ 

N : ์ „์ฒด ์Šคํ…Œ์ด์ง€์˜ ์ˆ˜ ex) 5

stages : ๊ฒŒ์ž„ ์ด์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋ฉˆ์ถฐ์žˆ๋Š” ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๋“ค์˜ ๋ฐฐ์—ด ex) [2,1,2,6,2,4,3,3]

 

์‹คํŒจ์œจ  : ์Šคํ…Œ์ด์ง• ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ด ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜ / ์Šคํ…Œ์ด์ง•์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜ 

 

์ถœ๋ ฅ๊ฐ’

: ๊ฐ ์Šคํ…Œ์ด์ง€์˜ ์‹คํŒจ์œจ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•˜๋ผ ex)[3,4,2,1,5]

 

๐Ÿ‘พํ•ด๊ฒฐ๊ณผ์ •๐Ÿ‘พ

1. for๋ฌธ์„ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋Œ๋ฆฌ๋ฉด์„œ ์ธ๋ฑ์Šค๋ฅผ ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ๋กœ ์ด์šฉํ•ด์•ผ๊ฒ ๋‹ค. 

2. ์‹คํŒจ์œจ์„ ๊ตฌํ•˜๋Š” ๋ถ„๋ชจ์™€ ๋ถ„์ž๋ฅผ ๋‘๊ณ  1~N๊นŒ์ง€์˜ ์‹คํŒจ์œจ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ด์ค‘ for๋ฌธ 

- ๋ถ„๋ชจ : ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆ˜, ๋ถ„์ž  : ํ•ด๋‹น ์ˆซ์ž 

3. ์‹คํŒจ์œจ์— ๋”ฐ๋ฅธ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋งŒ ๋‚˜์˜ค๊ฒŒ ์ถœ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.

 

โœจ์ตœ์ข…์ฝ”๋“œโœจ

function solution(N, stages) {
    var answer = [];
    for( i = 1; i <= N; i++){
        var a = 0; //๋ถ„๋ชจ: ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ์ˆ˜
        var b = 0; //๋ถ„์ž: ๋„๋‹ฌํ–ˆ์ง€๋งŒ ํด๋ฆฌ์–ด ๋ชปํ•œ ์ˆซ์ž == ํ•ด๋‹น ์ˆซ์ž
        for( j = 0; j < stages.length; j++){
            if(stages[j] >= i){
                a++;
            }
            if(stages[j] == i){
                b++;
            }
        }
        answer.push([i, b/a]);
        answer.sort((a,b) => b[1] - a[1]);
        var result = answer.map((num) => num[0]);  
    }
    return result;
}

 

+ํŒŒ์ด์ฌ

+๋” ํšจ์œจ์ ์œผ๋กœ

 

python3

def solution(N, stages):
    answer = []
    for i in range(1, N+1):
        a,b = 0,0
        for j in stages:
            if i <= j:
                b += 1
            if i == j:
                a += 1
        answer.append((i,a/b))
    answer.sort(key = lambda x:-x[1])
    return [x[0] for x in answer]

 ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋– ์„œ ์ด์ค‘ for๋ฌธ ๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค. 

 

def solution(N, stages):
    answer = []
    b = len(stages) # ๋ถ„๋ชจ
    for i in range(1, N+1):
        if b != 0:
            a = stages.count(i) #๋ถ„์ž
            answer.append((i , a/b))
            b -= a 
        else:
            answer.append((i, 0))
    answer.sort(key = lambda x:-x[1])
    return [x[0] for x in answer]

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ†ต๊ณผ๋œ๋‹ค!