[Python] 오늘의 연습 문제 풀기 3편

2022. 11. 29. 00:00·Coding Test/Programmers_Python
728x90

2022-11-28일 직접 푼 오늘의 연습 문제에 관한 내용입니다

정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다

 

[1차] 비밀지도(Lv.1)(정답률 68%)

더보기

추가로 알아야 할 함수/메소드 

  • zip()
  • rjust - 우측 정렬

코드 작동 방식

1. arr1과 arr2의 10진수들을 2진수로 변환한다

1+. 이 때, bin함수를 쓸 경우 b0가 붙으므로 그만큼 슬라이싱 해준다

2. arr12라는 변수에 우측정렬 후 빈 공간을 0으로 채운다

3. arr12변수에 들어가있는 1을 #으로, 0을 공백으로 대체한다

4. answer에 최종 지도 기호 한 줄을 넣는다

5. 완성된 전체 지도를 반환한다


코드

def solution(n, arr1, arr2):
    answer = [] # 최종 지도를 담을 배열
    for i,j in zip(arr1,arr2): # zip 함수를 이용해 두 인덱스 동시 반복
        arr12 = str(bin(i|j)[2:])
        # zip함수를 이용할 시 a|b 형식으로 두 인덱스 입력 
        # bin함수를 이용 시 2진수로 변환됨과 동시에 앞에 b0가 붙는다
        # 그렇기에 [2:]를 이용해 이를 제외한 문자열을 담는다
        arr12 = arr12.rjust(n,'0')
        # 배열길이 n에서 우측정렬 후 0으로 채워넣기
        arr12 = arr12.replace('0',' ') # 0을 공백으로 변환
        arr12 = arr12.replace('1','#') # 1을 #으로 변환
        # 이 때, zip으로 묶여있기에 다음과 같은 규칙이 적용된다
        # 00 -> ' ' + ' ' -> ' '
        # 10, 01 -> '#' + ' ' -> '#'
        # 11 -> '#' + '#' -> '#'
        answer.append(arr12) # 완성된 한 줄을 answer에 추가
    return answer # 완성된 보물지도 반환

유의사항

rjust와 같은 함수와 관련된 코드들은 str형태의 자료에서만 작동되기 때문에

숫자를 넣어 조작하려고 하면 임의로 str형태의 수를 사용해야 한다

ex) 1(X), '1'(O)

int형태로 rjust 실행 결과


실행결과

728x90
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > Programmers_Python' 카테고리의 다른 글

[Python] 오늘의 연습 문제 풀기 5편  (0) 2022.12.01
[Python] 프로그래머스 코딩테스트 입문 Day1  (0) 2022.12.01
[Python] 오늘의 연습 문제 풀기 4편  (0) 2022.11.30
[Python] 오늘의 연습 문제 풀기 2편  (0) 2022.11.28
[Python] 오늘의 연습 문제 풀기 1편  (0) 2022.11.26
'Coding Test/Programmers_Python' 카테고리의 다른 글
  • [Python] 프로그래머스 코딩테스트 입문 Day1
  • [Python] 오늘의 연습 문제 풀기 4편
  • [Python] 오늘의 연습 문제 풀기 2편
  • [Python] 오늘의 연습 문제 풀기 1편
ThreeLight
ThreeLight
ThreeLight Studio의 블로그, TimeMap.exe에 오신 것을 환영합니다.
  • ThreeLight
    TimeMap.exe
    ThreeLight
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Checkpoint (1)
      • (3D)Dev Deep Dive (0)
        • Templates & Guides (9)
        • Frontend origin (9)
        • Backend origin (1)
        • TroubleShootings (4)
      • Development Study (95)
        • Frontend (36)
        • Backend (21)
        • CS(Computer Science) (2)
        • Background Knowledges (11)
        • Algorithm (2)
        • Mobile (3)
        • AWS (6)
        • Python (6)
        • MSW(MapleStoryWorlds) (8)
      • Coding Test (59)
        • 문제.zip (1)
        • BaekJoon_JavaScript (0)
        • Programmers_JavaScript (9)
        • BaekJoon_Python (23)
        • Programmers_Python (10)
        • Undefined_Python (3)
        • Programmers_SQL (13)
      • 활동내역.zip (43)
        • 개인 (21)
        • Techeer (12)
        • Bootcamp (7)
        • Hackathon (1)
        • TeamProjects (2)
      • 여기 괜찮네??(사이트 | App) (5)
      • 재미있는 주제들 (8)
      • 개발 외 공부 저장소 (11)
        • 생산운영관리 (3)
        • 생활속의금융 (6)
        • 경영정보시스템 (2)
  • 링크

    • TimeMap.dmg (Portfolio)
    • GitHub 바로가기
    • 오픈프로필(카카오톡)
    • Medium 바로가기
    • Disquiet 바로가기
    • LinkedIn 바로가기
  • 인기 글

  • 태그

    Python
    TypeScript
    JavaScript
    프로그래머스
    programmers
    SQL
    Baek Joon
    react
    HTML
    CSS
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
ThreeLight
[Python] 오늘의 연습 문제 풀기 3편
상단으로

티스토리툴바