J1Yun
ZU-TECHLOG
J1Yun
전체 방문자
였늘
μ–΄μ œ
  • πŸ“‘ Category (135)
    • Algorithm (61)
      • πŸ“š Concept (6)
      • πŸ“˜ Baekjoon Judge (53)
      • πŸ“— Programmers (2)
    • Computer Science (42)
      • πŸ”’ Operating System (14)
      • πŸ“‘ Network (15)
      • πŸ’Ύ Database (8)
      • 🧩 Design Pattern (4)
      • πŸ”‘ Security (1)
    • Activities (12)
      • 🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 9κΈ° (6)
      • πŸ’» SWλ§ˆμ—μŠ€νŠΈλ‘œ 13κΈ° (6)
    • Infra (1)
      • ☁️ AWS (1)
    • Languages (1)
      • πŸ’™ Python (1)
    • Backend (7)
      • πŸ”΅ Django (4)
      • 🟒 Node.js (3)
    • Ect. (8)
      • πŸ’¬ Talk (0)
      • πŸ—‚οΈ 개발직ꡰ μ·¨μ—… μ€€λΉ„μžλ£Œ (8)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

250x250
hELLO Β· Designed By μ •μƒμš°.
J1Yun

ZU-TECHLOG

[Programmers] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 성격 μœ ν˜• κ²€μ‚¬ν•˜κΈ° - 파이썬(Python)
Algorithm/πŸ“— Programmers

[Programmers] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 성격 μœ ν˜• κ²€μ‚¬ν•˜κΈ° - 파이썬(Python)

728x90

문제 μ„€λͺ…

λ‚˜λ§Œμ˜ 카카였 성격 μœ ν˜• 검사지λ₯Ό λ§Œλ“€λ €κ³  ν•©λ‹ˆλ‹€.
성격 μœ ν˜• κ²€μ‚¬λŠ” λ‹€μŒκ³Ό 같은 4개 μ§€ν‘œλ‘œ 성격 μœ ν˜•μ„ κ΅¬λΆ„ν•©λ‹ˆλ‹€. 성격은 각 μ§€ν‘œμ—μ„œ 두 μœ ν˜• 쀑 ν•˜λ‚˜λ‘œ κ²°μ •λ©λ‹ˆλ‹€.

μ§€ν‘œ 번호 성격 μœ ν˜•
1번 μ§€ν‘œ λΌμ΄μ–Έν˜•(R), νŠœλΈŒν˜•(T)
2번 μ§€ν‘œ μ½˜ν˜•(C), ν”„λ‘œλ„ν˜•(F)
3번 μ§€ν‘œ μ œμ΄μ§€ν˜•(J), λ¬΄μ§€ν˜•(M)
4번 μ§€ν‘œ μ–΄ν”ΌμΉ˜ν˜•(A), λ„€μ˜€ν˜•(N)

4개의 μ§€ν‘œκ°€ μžˆμœΌλ―€λ‘œ 성격 μœ ν˜•μ€ 총 16(=2 x 2 x 2 x 2)κ°€μ§€κ°€ λ‚˜μ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "RFMN"μ΄λ‚˜ "TCMA"와 같은 성격 μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

κ²€μ‚¬μ§€μ—λŠ” 총 n개의 질문이 있고, 각 μ§ˆλ¬Έμ—λŠ” μ•„λž˜μ™€ 같은 7개의 선택지가 μžˆμŠ΅λ‹ˆλ‹€.

  • 맀우 λΉ„λ™μ˜
  • λΉ„λ™μ˜
  • μ•½κ°„ λΉ„λ™μ˜
  • λͺ¨λ₯΄κ² μŒ
  • μ•½κ°„ λ™μ˜
  • λ™μ˜
  • 맀우 λ™μ˜

각 μ§ˆλ¬Έμ€ 1κ°€μ§€ μ§€ν‘œλ‘œ 성격 μœ ν˜• 점수λ₯Ό νŒλ‹¨ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ–΄λ–€ ν•œ μ§ˆλ¬Έμ—μ„œ 4번 μ§€ν‘œλ‘œ μ•„λž˜ ν‘œμ²˜λŸΌ 점수λ₯Ό λ§€κΈΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

선택지 성격 μœ ν˜• 점수
맀우 λΉ„λ™μ˜ λ„€μ˜€ν˜• 3점
λΉ„λ™μ˜ λ„€μ˜€ν˜• 2점
μ•½κ°„ λΉ„λ™μ˜ λ„€μ˜€ν˜• 1점
λͺ¨λ₯΄κ² μŒ μ–΄λ–€ 성격 μœ ν˜•λ„ 점수λ₯Ό μ–»μ§€ μ•ŠμŠ΅λ‹ˆλ‹€
μ•½κ°„ λ™μ˜ μ–΄ν”ΌμΉ˜ν˜• 1점
λ™μ˜ μ–΄ν”ΌμΉ˜ν˜• 2점
맀우 λ™μ˜ μ–΄ν”ΌμΉ˜ν˜• 3점

μ΄λ•Œ κ²€μ‚¬μžκ°€ μ§ˆλ¬Έμ—μ„œ μ•½κ°„ λ™μ˜ μ„ νƒμ§€λ₯Ό 선택할 경우 μ–΄ν”ΌμΉ˜ν˜•(A) 성격 μœ ν˜• 1점을 λ°›κ²Œ λ©λ‹ˆλ‹€. λ§Œμ•½ κ²€μ‚¬μžκ°€ λ§€μš° λΉ„λ™μ˜ μ„ νƒμ§€λ₯Ό 선택할 경우 λ„€μ˜€ν˜•(N) 성격 μœ ν˜• 3점을 λ°›κ²Œ λ©λ‹ˆλ‹€.

μœ„ μ˜ˆμ‹œμ²˜λŸΌ λ„€μ˜€ν˜•μ΄ λΉ„λ™μ˜, μ–΄ν”ΌμΉ˜ν˜•μ΄ λ™μ˜μΈ 경우만 μ£Όμ–΄μ§€μ§€ μ•Šκ³ , μ§ˆλ¬Έμ— 따라 λ„€μ˜€ν˜•μ΄ λ™μ˜, μ–΄ν”ΌμΉ˜ν˜•μ΄ λΉ„λ™μ˜μΈ κ²½μš°λ„ μ£Όμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ 각 μ„ νƒμ§€λŠ” 고정적인 크기의 점수λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

  • 맀우 λ™μ˜λ‚˜ λ§€μš° λΉ„λ™μ˜ μ„ νƒμ§€λ₯Ό μ„ νƒν•˜λ©΄ 3점을 μ–»μŠ΅λ‹ˆλ‹€.
  • λ™μ˜λ‚˜ λΉ„λ™μ˜ μ„ νƒμ§€λ₯Ό μ„ νƒν•˜λ©΄ 2점을 μ–»μŠ΅λ‹ˆλ‹€.
  • μ•½κ°„ λ™μ˜λ‚˜ μ•½κ°„ λΉ„λ™μ˜ μ„ νƒμ§€λ₯Ό μ„ νƒν•˜λ©΄ 1점을 μ–»μŠ΅λ‹ˆλ‹€.
  • λͺ¨λ₯΄κ² μŒ μ„ νƒμ§€λ₯Ό μ„ νƒν•˜λ©΄ 점수λ₯Ό μ–»μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

검사 κ²°κ³ΌλŠ” λͺ¨λ“  질문의 성격 μœ ν˜• 점수λ₯Ό λ”ν•˜μ—¬ 각 μ§€ν‘œμ—μ„œ 더 높은 점수λ₯Ό 받은 성격 μœ ν˜•μ΄ κ²€μ‚¬μžμ˜ 성격 μœ ν˜•μ΄λΌκ³  νŒλ‹¨ν•©λ‹ˆλ‹€. 단, ν•˜λ‚˜μ˜ μ§€ν‘œμ—μ„œ 각 성격 μœ ν˜• μ μˆ˜κ°€ κ°™μœΌλ©΄, 두 성격 μœ ν˜• 쀑 사전 순으둜 λΉ λ₯Έ 성격 μœ ν˜•μ„ κ²€μ‚¬μžμ˜ 성격 μœ ν˜•μ΄λΌκ³  νŒλ‹¨ν•©λ‹ˆλ‹€.

μ§ˆλ¬Έλ§ˆλ‹€ νŒλ‹¨ν•˜λŠ” μ§€ν‘œλ₯Ό 담은 1차원 λ¬Έμžμ—΄ λ°°μ—΄ survey와 κ²€μ‚¬μžκ°€ 각 μ§ˆλ¬Έλ§ˆλ‹€ μ„ νƒν•œ 선택지λ₯Ό 담은 1차원 μ •μˆ˜ λ°°μ—΄ choicesκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. μ΄λ•Œ, κ²€μ‚¬μžμ˜ 성격 μœ ν˜• 검사 κ²°κ³Όλ₯Ό μ§€ν‘œ 번호 μˆœμ„œλŒ€λ‘œ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œ 사항

  • 1 ≤ survey의 길이 ( = n) ≤ 1,000
    • survey의 μ›μ†ŒλŠ” "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" μ€‘ ν•˜λ‚˜μž…λ‹ˆλ‹€.
    • survey[i]의 첫 번째 μΊλ¦­ν„°λŠ” i+1번 질문의 λΉ„λ™μ˜ κ΄€λ ¨ 선택지λ₯Ό μ„ νƒν•˜λ©΄ λ°›λŠ” 성격 μœ ν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€.
    • survey[i]의 두 번째 μΊλ¦­ν„°λŠ” i+1번 질문의 λ™μ˜ κ΄€λ ¨ 선택지λ₯Ό μ„ νƒν•˜λ©΄ λ°›λŠ” 성격 μœ ν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€.
    • choices[i]λŠ” κ²€μ‚¬μžκ°€ μ„ νƒν•œ i+1번째 질문의 선택지λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
    • 1 ≤ choices의 μ›μ†Œ ≤ 7choices의 길이 = survey의 길이
    choices 뜻
    1 맀우 λΉ„λ™μ˜
    2 λΉ„λ™μ˜
    3 μ•½κ°„ λΉ„λ™μ˜
    4 λͺ¨λ₯΄κ² μŒ
    5 μ•½κ°„ λ™μ˜
    6 λ™μ˜
    7 맀우 λ™μ˜

 

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

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr

 

πŸ’‘ 풀이 및 μ½”λ“œ

def solution(survey, choices):
    types = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0}
    for i in range(len(choices)):
        if choices[i] < 4:
            types[survey[i][0]] += (choices[i] * 3) % 4
        if choices[i] > 4:
            types[survey[i][1]] += choices[i] % 4
    type_key = list(types.keys())
    
    answer = ''
    for i in range(0, len(type_key), 2):
        if types[type_key[i]] > types[type_key[i+1]]:
            answer += type_key[i]
        elif types[type_key[i]] < types[type_key[i+1]]:
            answer += type_key[i+1]
        else:
            answer += min(type_key[i], type_key[i+1])
    return answer

성격 μœ ν˜•μ— λŒ€ν•œ 점수λ₯Ό dictionary ν˜•νƒœλ‘œ λ§Œλ“€μ–΄ μ €μž₯ν•œλ‹€. 각각의 μ§€ν‘œ λ³„λ‘œ 더 높은 점수의 성격 μœ ν˜•μ„ μ±„νƒν•˜λ˜, μ μˆ˜κ°€ 같을 λ•Œμ—λŠ” minν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ μ•ŒνŒŒλ²³μ΄ 사전 상 더 λΉ λ₯Έ (μž‘μ€) μœ ν˜•μ„ μ„ νƒν•œλ‹€. 

728x90

'Algorithm > πŸ“— Programmers' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Programmers] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 μ‹ κ³  κ²°κ³Ό λ°›κΈ° - 파이썬(Python)  (0) 2022.09.02
    'Algorithm/πŸ“— Programmers' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ 글이닀
    • [Programmers] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 μ‹ κ³  κ²°κ³Ό λ°›κΈ° - 파이썬(Python)
    J1Yun
    J1Yun
    개발 κ΄€λ ¨ 기술 및 곡뢀 λ‚΄μš© 기둝μž₯

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”