알고리즘 풀이

문제 이 문제는 선분 세 개로 삼각형을 만들기 위한 조건을 만족하는 선분의 개수를 찾는 것입니다. 삼각형을 만들기 위한 조건은 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야 한다는 것입니다. 삼각형의 두 변의 길이가 담긴 배열 sides가 주어지고, 나머지 한 변이 될 수 있는 정수의 개수를 반환하는 함수를 작성해야 합니다. 제한사항 sides의 원소는 자연수입니다. sides의 길이는 2입니다. 1 ≤ sides의 원소 ≤ 1,000 입출력 예 예시 1: sides가 [1, 2]인 경우, 결과는 1입니다. 두 변이 1, 2인 경우 삼각형을 완성시키려면 나머지 한 변이 2여야 합니다. 문제 풀이 def solution(sides): sides.sort() return 2*sides[0]-1 부..
문제 요약 두 정수 left와 right가 주어지고, left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환하는 함수를 작성하라 단 1 ≤ left ≤ right ≤ 1,000 입출력 예 예시 1: left가 13, right가 17인 경우, 결과는 43입니다. 이는 13부터 17까지의 수들 중에서 약수의 개수가 짝수인 수(13, 14, 15, 17)를 더하고, 약수의 개수가 홀수인 수(16)를 뺀 결과입니다. 예시 2: left가 24, right가 27인 경우, 결과는 52입니다. 이는 24부터 27까지의 수들 중에서 약수의 개수가 짝수인 수(24, 26, 27)를 더하고, 약수의 개수가 홀수인 수(25)를 뺀 결과입니다. 1번째 ..
문제 요약 "달리기 경주"라는 문제는 매년 열리는 달리기 경주에서 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부르는 해설진의 역할을 수행하는 알고리즘을 구현하는 것입니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 주어집니다. 해설진이 선수의 이름을 부르면, 그 선수는 바로 앞의 선수를 추월하게 됩니다. 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해야 합니다. 제한사항 players의 길이는 5 이상 50,000 이하입니다. players[i]는 i번째 선수의 이름을 의미합니다. players의 원소들은 알파벳 소문자로만..
알고리즘 감 살리기 - 기초 알고리즘 군대에서 꾸준히 하루에 3문제씩 알고리즘을 풀었었는데, 복학하고 점점 안푸니까 실력이 너무 녹슬었다. 다시금 알고리즘 감을 살리기 위해 기초부터 시작하려 한다. 버블 정렬 버블 정렬은 요소 목록을 반복적으로 살펴보고 인접한 요소를 비교하고 순서가 잘못된 경우 교체하는 간단한 정렬 알고리즘입니다. 거품이 액체 표면으로 올라가는 것과 유사하게 작은 요소가 목록의 맨 위로 "거품"되기 때문에 이름이 붙여졌습니다. 아래는 제가 작성한 코드입니다. def bubbleSort(numbers): for i in range(len(numbers) - 1): for j in range(i + 1, len(numbers)): if numbers[i] > numbers[j]: temp ..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 예산 def solution(d, budget): answer = 0 d.sort() for b in d: if budget-b0 else abs(money-p) return answer
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 크레인 인형 뽑기 from collections import deque def solution(board, moves): answer = 0 m = [deque([]) for i in range(len(board)) ] for bo in board: for i,b in enumerate(bo): if b==0: continue m[i].appendleft(b) result = [] for move in moves: move-=1 if len(m[move])==0: continue else: result.append(m[move].pop()) if len(re..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 숫자 문자열과 영단어 from collections import deque def solution(s): answer = 0 n=[i for i in range(10)] en = {0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"} for i in range(10): n[i]=i jump=0 number = [] s = deque(s) while s: idx = s.popleft() if idx=="z": jump = 3 number.append("..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 다트 게임 def solution(dartResult): dart = [] temp="" for index,d in enumerate(dartResult): if d=="S" or d=="D" or d=="T": dart.append(calc(int(temp),d)) temp="" elif d=="*": if dartResult[index-2]=="*": dart[-1]*=2 dart[-2]*=2 elif dartResult[index-2]=="#": dart[-2]*=2 else: dart[-1]*=2 if len(dart)>1: dart[-2]*=2 el..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 바탕화면 정리 def solution(wallpaper): x1,x2,y1,y2 = 9999,-9999,9999,-9999 for y,wp in enumerate(wallpaper): for x,w in enumerate(wp): if w=="#": x1 = min(x1,x) x2 = max(x2,x) y1 = min(y1,y) y2 = max(y2,y) return y1,x1,y2+1,x2+1 개인 정보 수집 유효 기간 def solution(today, terms, privacies): answer = [] dic = {} ty,tm,td = map(in..
CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 타겟 넘버 from collections import deque def solution(numbers, target): answer = 0 numbers = deque(numbers) result = deque() while numbers: n = numbers.popleft() temp = deque() if len(result)==0: result.append(n) result.append(-n) else: for r in result: temp.append(r+n) temp.append(r-n) result = temp print(result) for ..
berom
'알고리즘 풀이' 카테고리의 글 목록 (7 Page)