250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level1 (๋ชจ์˜๊ณ ์‚ฌ) ๋ณธ๋ฌธ

๐Ÿ“ Coding Test/Programmers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level1 (๋ชจ์˜๊ณ ์‚ฌ)

ใ…… ใ…œ ใ…” ใ…‡ 2022. 10. 13. 04:05
728x90

1. ๋ฌธ์ œ ์„ค๋ช…

์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค.

1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

 

 

2. ์ œํ•œ ์กฐ๊ฑด

  • ์‹œํ—˜์€ ์ตœ๋Œ€ 10,000 ๋ฌธ์ œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ์˜ ์ •๋‹ต์€ 1, 2, 3, 4, 5์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์ด ์—ฌ๋Ÿฟ์ผ ๊ฒฝ์šฐ, returnํ•˜๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

 

 

 

 

3. ๋‚ด ํ’€์ด

def solution(answers):
    one = (list(range(1,6)) * (10000//5))[:len(answers)]
    two = ([2,1,2,3,2,4,2,5] * (10000//8))[:len(answers)]
    three = ([3,3,1,1,2,2,4,4,5,5] * (10000//10))[:len(answers)]
    
    one_an = len([i for i,j in zip(answers, one) if i==j])
    two_an = len([i for i,j in zip(answers, two) if i==j])
    thr_an = len([i for i,j in zip(answers, three) if i==j])
    
    aa = {1:one_an, 2:two_an, 3:thr_an}
    answer = [k for k,v in aa.items() if max(aa.values()) == v]
    
    return answer

 

1. 1,2,3๋ฒˆ ํ•™์ƒ์˜ ๋ฌธ์ œ ์ฐ๋Š” ํŒจํ„ด์— ๋งž์ถฐ answer์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์คŒ

2. ๊ฐ ํ•™์ƒ์ด ๋งž์ถ˜ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜๋ฅผ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ ๊ณ„์‚ฐ

3. ํ•™์ƒ์˜ ๋ฒˆํ˜ธ์™€, ๋งž์ถ˜ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์Œ์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ

4. ๊ฐ€์žฅ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ๋งž์ถ˜ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜๋ฐ›์Œ

 

 

 

4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

def solution(answers):
    pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1
        if answer == pattern2[idx%len(pattern2)]:
            score[1] += 1
        if answer == pattern3[idx%len(pattern3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return result

 

1. ๊ฐ ํ•™์ƒ์˜ ํŒจํ„ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ƒ์„ฑ

2. for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ answer๊ณผ ํ•™์ƒ์ด ์ฐ์€ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์œผ๋ฉด score + 1

3. ๊ฐ€์žฅ ๋งŽ์ด ๋งž์ถ˜ ํ•™์ƒ์˜ ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜

 

 

 

728x90
Comments