✅ PS/Programmers

    [프로그래머스 / Lv.1] 2018 KAKAO [1차] 비밀지도 - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 이 문제는 비트 연산을 통해 해결할 수 있습니다. 두 지도를 겹쳐 지도 1, 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이기 때문에, 각 지도의 같은 행끼리 비트 or 연산을 하면 전체 지도의 벽 위치를 알 수 있습니다. 우선 각 행을 비트 or 연산한 결과를 bin() 함수를 이용해 2진수로 변환하고 [2:]를 통해 맨 앞 진법 표시를 지워줍니다. 이때 2진수의..

    [프로그래머스 / Lv.1] 명예의 전당 (1) - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 heapq를 통해 min heap으로 해결할 수 있습니다. min heap으로 구현함으로써 honor[0]을 통해 매번 정렬하지 않고도 명예의 전당 최하위 점수를 알 수 있습니다. k일까지 모두 heapq.heappush를 통해 명예의 전당에 넣고, 이후에는 명예의 전당 최하위 점수가 새로운 점수보다 낮다면 기존의 최하위 점수를 heapq.heappop(honor)로 힙에서 ..

    [프로그래머스 / Lv.1] 개인정보 수집 유효기간 - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 약관의 유효기간은 약관의 종류별로 딕셔너리에 저장해두고, "모든 달은 28일까지 있다고 가정한다"고 문제에 주어져있기 때문에 비교해야 하는 오늘 날짜와 개인정보의 보관 일자는 모두 일 수로 변경해서 비교해줍니다. 🧑🏻‍💻 코드 def solution(today, terms, privacies): answer = [] term_dic = {} today_year, today_m..

    [프로그래머스 / Lv.1] 대충 만든 자판 - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 keymap에 들어있는 키 배열을 확인하면서 입력 가능한 문자와 그 문자를 입력하기 위해 필요한 버튼 클릭 횟수를 key_dic 딕셔너리에 저장해둡니다. 이때, 같은 문자가 여러 번 할당된 경우가 있다고 했기 때문에 min 함수를 이용해 클릭의 최소 횟수를 저장합니다. 이후 target의 문자를 key_dic에서 찾아 모두 더하면 그것이 버튼 클릭 최소 횟수가 됩니다. 🧑🏻‍..