๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] [Python] Level1_๋ชจ์˜๊ณ ์‚ฌ

Dbswnstjd 2022. 3. 8. 04:54

https://programmers.co.kr/learn/courses/30/lessons/42840

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ์˜๊ณ ์‚ฌ

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

programmers.co.kr

ํ’€์ด

def solution(answers):
    # ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฆฌ์ŠคํŠธ
    answer = []
    # ์ˆ˜ํฌ์ž 1
    supo_1 = [1, 2, 3, 4, 5]
    # ์ˆ˜ํฌ์ž 2
    supo_2 = [2, 1, 2, 3, 2, 4, 2, 5]
    # ์ˆ˜ํฌ์ž 3
    supo_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

    # ๊ฐ ์ˆ˜ํฌ์ž๊ฐ€ ๋งž์€ ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฐ์—ด
    cnt = [0, 0, 0]

    # ์ž…๋ ฅ๋ฐ›์€ ๋‹ต์•ˆ์„ ํ† ๋Œ€๋กœ ๊ฐ ์ˆ˜ํฌ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋งž์•˜๋Š”์ง€ ํƒ์ƒ‰
    for i in range(len(answers)):
        # ์ˆ˜ํฌ์ž 1์€ 5๋ฅผ ์ฃผ๊ธฐ๋กœ ๋ฐ˜๋ณต
        if answers[i] == supo_1[i % 5]:
            cnt[0] += 1
        # ์ˆ˜ํฌ์ž 2๋Š” 8์„ ์ฃผ๊ธฐ๋กœ ๋ฐ˜๋ณต
        if answers[i] == supo_2[i % 8]:
            cnt[1] += 1
        # ์ˆ˜ํฌ์ž 3์€ 10์„ ์ฃผ๊ธฐ๋กœ ๋ฐ˜๋ณต
        if answers[i] == supo_3[i % 10]:
            cnt[2] += 1

    # ๊ฐ€์žฅ ๋งŽ์ด ๋งž์ถ˜ ์ˆ˜
    max_cnt = max(cnt)

    # ๊ฐ€์žฅ ๋งŽ์ด ๋งž์ถ˜ ์‚ฌ๋žŒ์„ ๋ฐฐ์—ด์— ๋‹ด๊ธฐ
    for i in range(3):
        # ๊ฐ€์žฅ ๋งŽ์ด ๋งž์ถ˜ ์ˆ˜์™€ ๊ฐ™์€ cnt ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ +1 ํ•˜์—ฌ answer์— ๋‹ด๊ธฐ
        if max_cnt == cnt[i]:
            answer.append(i + 1)

    return answer


print(solution([1, 3, 2, 4, 2, 2, 3, 1, 4, 5, 2, 3, 4]))