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