목록전체 글 (57)
하루한줄 코딩일기
인프런 > 파이썬 알고리즘 문제풀이 섹션 2.4 대표값 👊 내 문제 풀이 1. 평균값을 구한다. (round() 함수를 사용해 반올림) 2. |평균과의 점수차| 의 최솟값을 min 변수에 저장한다. 3. |평균과의 점수차| 가 min과 같은 경우, temp 리스트에 점수를 저장한다. 4. temp 리스트의 점수들 중 가장 높은 수를 구해 해당 점수를 보유한 학생의 번호를 출력한다. (여러 명일 경우 앞 번호의 학생을 출력한다.) n = int(input()) scores = list(map(int, input().split())) average = round(sum(scores)/n)#평균 반올림 min = 100 temp = [] # '평균과의 점수차 절대값'이 가장 작은 경우를 구해 min 변수에 저..
프로그래머스 > 두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 설명 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2..
인프런 > 파이썬 알고리즘 문제풀이 섹션 2.3 K번째 큰 수 👊 내 문제 풀이 3중 for문을 돌며, 카드 3장을 뽑았을 때 나올 수 있는 모든 합의 경우를 answer 리스트에 저장한다. (단, 이미 존재하는 숫자일 경우 저장하지 않는다.) answer 리스트에는 나올 수 있는 모든 합의 경우가 중복 없이 저장되고, 이를 정렬한 후 K번째로 큰 수를 출력한다. n, k = map(int, input().split())#첫 줄에 주어진 n, k 입력받기 cards = list(map(int, input().split()))#카드열 입력받기 answer=[] for i in range(n): for j in range(i+1, n): for m in range(j+1, n): if (cards[i]+ca..
인프런 > 파이썬 알고리즘 문제풀이 섹션 2.2 K번째 수 👊 내 문제 풀이 첫 줄은 케이스의 개수를 알려준다. 첫 줄을 읽어와서 numOfCase라는 변수에 저장한다. 케이스 개수 동안 n, s, e, k에 해당하는 숫자들을 저장하고, arr 리스트에 그 다음 줄인 숫자열을 저장한다. 숫자열 arr을 s부터 e번째 수까지 자른 후 정렬하고, 정답을 출력한다. numOfCase=int(input())#케이스의 개수 for i in range(numOfCase): n, s, e, k = map(int, input().split())#띄어쓰기를 기준으로 읽어들임 arr = list(map(int, input().split()))#리스트에 숫자열 저장 arr = arr[s-1:e]#s번째부터 e번째까지의 수 ..
인프런 > 파이썬 알고리즘 문제풀이 섹션 2.1 K번째 약수 👊 내 문제 풀이 먼저, 숫자 n의 약수들을 구한다. n을 n 이하의 숫자 i로 나누었을 때 나누어 떨어질 경우, 숫자 i는 n의 약수이므로 answer 리스트에 저장한다. n의 약수들 중 k번째 숫자를 출력해야 하므로, answer[k-1] 를 출력한다. 단, n의 약수의 개수가 k개보다 적어서 k번째 수가 존재하지 않을 경우 -1을 출력한다. #입력처리 n, k = map(int, input().split()) answer = [] for i in range(1, n+1): if n%i == 0: answer.append(i) if len(answer) >= k:#k번째 수가 존재하면 print(answer[k-1]) else: print(..
프로그래머스 > 나머지가 1이 되는 수 찾기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. 👊 내 문제 풀이 def solution(n)..
프로그래머스 > 내적 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 입출력 예 설명 입출력 예 #1 a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 #2 a와 b의 내적은 (-1)*1 + ..