알고리즘/Python

알고리즘/Python

[python] 백준 3460 - 약수 구하기

출처 : 백신, https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 더보기 풀이 def solution(n): arr = [] for i in range(1, int(n**0.5) + 1): if n % i == 0: arr.append(i) if i != n//i: arr.append(n//i) return sorted(arr) if __name__ == '__main__': n, k = map(int, input().split()) try: print(solution(n)[k-1]) except: print(0) 전체..

알고리즘/Python

[python] 프로그래머스 - JadenCase 문자열 만들기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 문제 해설 적은 사람 나와 ● 공백문자가 연속해서 나올 수 있습니다. 이러면 다냐 더보기 풀이 def solution(s): s_array = s.split(' ') for index in range(len(s_array)): try: s_array[index] =..

알고리즘/Python

[python] 프로그래머스 - 최댓값과 최솟값

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 이건 파이썬에서 풀면 출제자가 의도한 문제랑은 완전 다르게 푸는 것 같은데... 더보기 풀이 def solution(s): s = list(map(int, s.split())) return str(min(s)) + ' ' + str(max(s)) 그래 아무리 봐도 이걸 유도한 풀이는 아닌데...뭘..

알고리즘/Python

[python] 프로그래머스 - 주차 요금 계산

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 더보기 풀이 import math def time_calculate(time_in, time_out): if time_out[1] < time_i..

알고리즘/Python

[python] 프로그래머스 - 괄호 회전하기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 더보기 풀이 from collections import deque def solution(s): s = deque(list(s)) count = 0 for i in range(len(s)): s.rotate() stack = [] for par in s: if par == '(' or par == '{' or par == '[': stack.append(par) else: if len(stack)

알고리즘/Python

[python] 프로그래머스 - N개의 최소공배수

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 더보기 풀이 def solution(arr): #100 이하의 모든 소수 구하기 prime = set(range(2, 100)) for i in range(2, int(100**0.5) + 1): prime -= set(range(i*2, 100, i)) prime = list(p..

알고리즘/Python

[python] 프로그래머스 - 거리두기 확인하기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 더보기 풀이 def solution(places):..

알고리즘/Python

[python] 프로그래머스 - 게임 맵 최단 거리

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 더보기 첫 번째 풀이 : 실패 from collections import deque def solution(maps): n = len(maps) m = len(maps[0]) queue = deque() queue.append((0, 0, 0)) while queue: ..

알고리즘/Python

[python] 프로그래머스 - 124 나라의 숫자

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 더보기 첫 번째 풀이 : 효율성 테스트3 실패 def solution(n): answer = [] n = int(n) while n >= 3: rest = n % 3 if rest != 0: answer.append(str(rest)) n //= 3 else: answer.append('4') n = n // 3 - 1 answer.append(str(n)) return str(int(''.join(reversed(answer)))) 처음보자마자 한 생각은 n진법과 비슷한 규칙성이 있지 않을까?..

알고리즘/Python

[python] 프로그래머스 - 타겟 넘버

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 더보기 풀이 def plus_minus(current, array, index, target, count): plus_node = current + array[index] minus_node = current - array[index] if index == len(array) - 1: if plus_..

알고리즘/Python

[python] 프로그래머스 - 가장 큰 수

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 더보기 첫 번째 풀이 : 테스트 케이스 10에서 시간 초과 def solution(number, k): answer = '' start = 0 for i in range(k+1, len(number)+1): max_val = max(number[start:i]) answer += max_val start += number[start:i].index(max_val) + 1 return answer 난 당연히 맞을거라고 생각하고 있었는데 시간초과가 나오길래 너무 당황스러웠다. 사고방식은 다음과 같다. n..

알고리즘/Python

[python] 프로그래머스 - 소수 찾기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 소수 찾는 문제는 굉장히 전통적인 문제라서 효율적으로 찾는 방법을 알아두면 편하다. (아마 LV1에 소수 찾는 문제 중 효율정 테스트가 빡센 문제가 있는걸로 안다) 더보기 풀이 def isPrime(num): import math if num == 2: return True if num == 1 or num ..

제주도랏맨
'알고리즘/Python' 카테고리의 글 목록 (11 Page)