본문 바로가기

Algorithm/etc111

[파이썬] 프로그래머스 : 우박수열 정적분 (Lv.2) [파이썬] 프로그래머스 : 우박수열 정적분 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 0. 방향성 생각 누적합을 활용해서 구간합을 구한다. 1. 주어진 수열 완성, 누적합 구하기 def solution(k,ranges): arr,cum,answer = [k],[],[] while arr[-1] > 1 : if arr[-1]%2==0 : arr.append(arr[-1]//2) else : arr.append(arr[-1]*3+1) for i in range(len(arr)-1): if i==0 : cum.append((arr[0]+a.. 2023. 7. 8.
[파이썬] 프로그래머스 : 줄 서는 방법 (Lv.2) [파이썬] 프로그래머스 : 줄 서는 방법 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방향성 생각 재귀적으로 위치 파악 ex) n=5 일 때 94번 째? n! = 120 / [0, 24, 48, 72, 96] / (n-1)! 맨 앞사람 단위로 변한다. -> 94가 어느 범위에 있냐? 94가 4번째는 못넘음. 현재 인원 [1,2,3,4,5] 중 4번째 가져옴. -> 남은 인원 [1,2,3,5] 94-72 = 22 22에 대해서도 똑같이 진행 ex) n=4 일 때 22번 째? n! = 24 / [0,6,12,18] / (n-1)! 맨 앞사.. 2023. 7. 6.
[파이썬] 프로그래머스 : 거리두기 확인하기 (Lv.2) [파이썬] 프로그래머스 : 거리두기 확인하기 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 0. 방향성 생각 전체 입력이 5x5이고 테케 5번처럼 사람이 최대한 많아봐야 13명이라 13C2 = 78로 이런 케이스 5개 들어와도 충분히 적은 케이스라서 완전탐색으로 구현했다. BFS로 인접거리 2인 부분까지 탐색하는 거로도 풀 수 있어보였는데 그냥 구현하는게 더 빠를거같아서 완탐 풀이. 1. 입력 받기 from itertools import combinations as C def solution(places): # 완탐 answer = [].. 2023. 7. 3.
[파이썬] 백준 1036 : 36진수 (골드1) [파이썬] 백준 1036 : 36진수 (골드1) 1036번: 36진수 첫째 줄에 수의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 수가 주어진다. N은 최대 50이고, 수의 길이도 최대 50이다. 마지막 줄에 K가 주어진다. K는 36보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 문제 풀이 0. 방향성 생각 진법 변환 문제. 그리디 태그가 있는데 내가 푼 풀이도 그렇고 그리디 치고 뭐 생각할게 없어서 문자열이 더 맞는 듯 하다. 단일 입력이 들어왔을 때 어떤 식으로 다룰 것인가. 변환할 가능한 수 문자열에 나타난 종류보다 같거나 많은 경우 변환할 가능한 수의 개수가 문자열에 나타난 종류보다 적은 경우 다중 입력이 들어왔을 때 어떤 식으로 다룰 것인가. 변환이 불가능한 경우 전부 변.. 2023. 6. 29.