본문 바로가기
728x90
반응형

알고리즘45

백준 1212번 8진수 2진수 파이썬 풀이 8진수 2진수 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 42719 14382 11915 35.800% 문제 8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오. 입력 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. 출력 첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다. 예제 입력 1 복사 314 예제 출력 1 복사 11001100 # import sys # input=sys.stdin.readline n=input() arr=list(n) #리스트에 저장 k=len(arr) ten=0 two=[] for i in range (k): arr[i]=int(arr[i]) if(.. 2023. 8. 1.
백준 11000번 강의실 배정 파이썬 풀이 heap 강의실 배정 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 36634 10772 7915 28.905% 문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충한 게 찔리면, 선생님을 도와드리자! 입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) 출력 강의실의 개수를 출력하라. 예제 입력 1 복사.. 2023. 8. 1.
백준 16953번 A -> B 파이썬 풀이 A → B 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 39711 16395 13073 39.908% 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 예제 입력 1 복사 2 162 예제 출력 1 복사 5 2 → 4 → 8 → 81 → 162 예제 입력 2 복사 4 42 예제 출력 2 복사 -1 예제 입력 3 복사 100 40021 예제 출력 3 복사 5 100 →.. 2023. 8. 1.
백준 1931번 회의실 배정 파이썬 풀이 https://www.acmicpc.net/problem/1931 회의실 배정 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 180485 57666 40331 29.980% 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ .. 2023. 7. 29.
[프로그래머스] 숫자 변환하기 파이썬 lv2 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(x, y, n): s = set() #순서가 없다. 중복이 없다. set은 집합 s.add(x) #s집합에 x넣음 cnt=0 #최소횟수를 세는 while(s): if(y in s): #같으면 종료, cnt 반환 return cnt t=set() #임시로 빈 집합 만들어준다 for i in s: #s의 원소에 대해 수행하고, 빈 집합 t에 추가해주어 원소 갱신 if(i*2 2023. 6. 24.
[프로그래머스] 요격 시스템 lv2 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(targets): targets.sort(key=lambda x: (x[1])) #x[1]에 대해 오름차순정렬 cnt=0 e=0 #끝지점설정 for target in targets: if(target[0]>=e): #타겟의 시작점이 e보다 크거나같다면 cnt+=1 #새로운 미사일을 날린다 e=target[1]#e지점을 해당 타겟의 끝지점으로 설정하며 범위 변경 return.. 2023. 6. 24.
[프로그래머스] 타겟넘버 파이썬 풀이 lv2 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(numbers, target): cnt=0 def dfs(idx, sum): if idx==len(numbers): if(sum==target): nonlocal cnt cnt+=1 return else: dfs(idx+1,.. 2023. 6. 23.
[프로그래머스] 연속된 부분 수열의 합 def solution(sequence, k): #길이가 짧은 것/ -> 시작인덱스작은것 #DP를 쓰면 좋을것같은데... 아닌가? min_len=len(sequence)+1 i=0 jump=0 while i k: break sum=0 for j in range(i, len(sequence)): sum+=sequence[j] if (sum==k):#k값이 충족이 된다면, if (j-i) k): #k값 넘어버린다면, for문탈출 break i+=1 return answer 기존에 쓴 코드, 처음에는 더 길게 했다가, 시간초과가 뜨길래 dp문제인가 싶어 jump를 설정해서 의미없이 세는 것을 방지하고자했는데 실패.. 결국 풀이를 보았따!! 슬라이딩 도어?! def solution(sequence, k): l=.. 2023. 6. 23.
[프로그래머스] 공원 산책 lv1 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def move(dirr): #이동함수 dx=[-1, 1, 0,0] #상하좌우NSWE dy=[0,0,-1,1] if dirr=="N": return dx[0],dy[0] elif dirr=="S": return dx[1],dy[1] elif dirr=="W": return dx[2],dy[2] else: return dx[3],dy[3] def solution(park, routes): star.. 2023. 6. 23.
728x90
반응형