전체 글

주저리주저리
알고리즘/Python

[python] 백준 2609 - 최대공약수와 최소공배수

출처 : 백준, https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 참고 프로그래머스 - N개의 최소공배수 유클리드 호제법 ​ 더보기 풀이 def gcd(a, b): if b == 0: return a return gcd(b, a%b) if __name__ == '__main__': A, B = map(int, input().split()) if A < B: A, B = B, A G = gcd(A, B) L = A * B//G print(G) print(L) 시간 복잡도 - 다른 사람의 풀이를 보면서 알게 된 점 ..

알고리즘/Python

[python] 프로그래머스 - 전력망 둘로 나누기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 최근 문제 중에 최고난도... 처음 생각한 로직은 말단 노드를 모두 찾고, 말단 노드 중 가장 거리가 먼 노드를 찾고 이 둘을 하나씩 채워간다. 더보기 첫 번째 풀이 : 참고하기 참고, 실패 def solution(n, wires): answer = -1 min_val = 200 for x in range(len(wires)..

알고리즘/Python

[python] 백준 2309 - 일곱 난쟁이

출처 : 백준, https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 백설 공주는 키 합이 100이면 누가되든 상관이 없던걸까? 백설 공주에게 난쟁이란 그런 언제든지 대체 가능한 존재였던걸까... 너무 불쌍해 보자마자 N-Qeeuns 문제가 떠올랐다. 참고 : Recursion(재귀) Covenant님 블로그 - 용감하게 시작하는 코딩테스트 1편 더보기 풀이 Recursion와 Backtracking을 이용해서 문제를 해결해보자. Backtracking을 이..

알고리즘/Python

[python] 프로그래머스 - 행렬의 곱셈

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 만만하게 봤는데 코드를 깔끔히 작성한다는 점에서 다른 사람들의 풀이를 공부해볼 가치가 있는 문제였다 더보기 풀이 def solution(arr1, arr2): answer = [] for i in range(len(arr1)): arr = [] for j in range(len(arr2[0])): count..

알고리즘/Python

[python] 백준 2460 - 지능형 기차2

출처 : 백준, https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 더보기 풀이 if __name__ == '__main__': people = 0 max_p = 0 while True: try: minus, plus = map(int, input().split()) people = people - minus + plus if max_p < people: max_p = people except: break print(max_p) 입력이 끝날 ..

알고리즘/Python

[python] 백준 3460 - 이진수

출처 : 백준, https://www.acmicpc.net/problem/3460 3460번: 이진수 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. www.acmicpc.net 내가 이해를 못하는건가 문제 설명이 부족한건가 예제에 2개나 3개짜리 예제를 보여줘야 하는 것 같은데 계속 답 값 자체는 맞는데 출력 형식을 못 맞춰서 틀림...... input도 테스트 케이스별로 한 줄 씩 들어가고 출력도 테스트케이스 별로 한 줄 씩 나온다. input 2 #T 13 2 output 0 2 3 1 더보기 풀이 if __name__ == '__main__': T = int(in..

알고리즘/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) 전체..

알고리즘/SQL

[Oracle] 프로그래머스 - 'el'이 들어가는 동물 찾기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59047 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 더보기 풀이 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE lower(NAME) Like '%el%' and ANIMAL_TYPE = 'Dog' ORDER By N..

알고리즘/SQL

[Oracle] 프로그래머스 - 동명 동물 수 찾기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59041 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SQL인데 딱히 넣을데가 분류가 없더라... 더보기 첫 번째 풀이 SELECT NAME, count(*) as COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(*) > 1 ..

알고리즘/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..

제주도랏맨
제주도랏맨의 블로그