본문 바로가기
728x90

Python164

[프로그래머스] 표현 가능한 이진트리 - Python https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이진트리를 수로 표현 10진수를 2진수로 만들기 : bin(num)[2:] 포화 이진 트리로 만들기 포화 이진 트리 노드 개수 == (2**n)-1 n 을 구해야 함 (아래 표 보기) n = 정수(log2(길이)) + 1 n == (int(math.log(len(num), 2)) + 1) 2진수에서 왼쪽에 모자란 길이만큼 0 추가 포화 이진 트리가 가능한 형태인지 확인 부모가 없이 자식만 .. 2023. 6. 12.
[백준] 5014. 스타트링크 - Python https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 생각 최단 경로를 구하는 것이므로 bfs 코드 from sys import stdin from collections import deque input = stdin.readline F,S,G,U,D = map(int,input().split()) # 총 F층인 건물, S층에서 G층 가기 # 방문 표시 visited = [0]*(F+1) def bfs(now): global visited visited[now].. 2022. 7. 13.
[백준] 14501. 퇴사 - Python https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 생각 DP 거꾸로 확인 근무 마지막날부터 해당 상담을 진행 시 근무 종료 전까지 마무리 가능한 경우 상담을 진행 상담을 진행하지 않음 해당 상담을 진행 시 근무 종료 전까지 마무리가 불가능한 경우 다음 날 이익이랑 같음 코드 from sys import stdin input = stdin.readline # 근무 일 N = int(input()) # 상담 [걸리는 시간, 받을 수 있는 금액] counsel = [list(map(int,input().split())) for _ in range(N)] # 각 근무일까지 얻을 수 있는 최.. 2022. 7. 3.
[프로그래머스] Lv.2 프렌즈4블록 - Python https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 생각 위에서 떨어지는게 아니라 오른쪽에서 왼쪽으로 떨어지도록 돌리기 같은 열에서 위에서부터 지우는 것보다 같은 행에서 지우는게 더 편할 것 같아서 이번 turn에 터트릴 수 있는 위치 set에 담기 중복을 제거하기 위해 터트릴 수 있는 위치 0으로 바꾸고 왼쪽으로 떨어지도록 하기 A C 0 0 C -> A C C 0 0 으로 바꾸기 터트릴.. 2022. 6. 30.
[프로그래머스] Lv.1 비밀지도 - Python https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 생각 정수를 2진수로 바꾸기 : bin(x) 2진수 맨앞이 0인 경우들을 생각해서 n자리 0으로 채우기 : .zfill(n) 둘 다 0이면 빈 칸 아니면 벽 코드 def solution(n, arr1, arr2): answer = [] for i in range(n): # 2진수로 바꾸기 / n자리 0으로 채우기 a = bin(arr1[i])[2:].zf.. 2022. 6. 30.
[프로그래머스] Lv.2 뉴스클러스터링 - Python https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 생각 다중집합에서 영어 대문자, 소문자 구분하지 않는다 했으니 모두 대문자로 바꾸기 다중집합 만들면서 영어로만 되어있는게 아니면 버리기 : .isalpha() 둘 다 공집합이면 1*65536 둘 중 하나라도 공집합이면 교집합이 없으므로 0 교집합/합집합 구하는 방법 1. 교집합 구하기 원소에 중복을 허용하기에 set() 사용할 수 없음 하나.. 2022. 6. 30.
반응형