프로그래머스 | Python | 옹알이 (1)
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내 코드def solution(babbling): valid = ["aya", "ye", "woo", "ma"] answer = 0 for i in babbling: for j in valid: if j in i: i = i.replace(j, " ", 1) if i.strip() == "": answer += 1 return answer코드 설명발음 가능한 소리 정의:["aya", "ye", "woo", "ma"]를 ..
프로그래머스 | Python | 평행
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내코드def solution(dots): def angle(dot1, dot2): x1, y1 = dot1 x2, y2 = dot2 return (y2 - y1) / (x2 - x1) lines = [ (0, 1, 2, 3), (0, 2, 1, 3), (0, 3, 1, 2), ] for i, j, k, l in lines: if angle(dots[i], dots[j]) == angle(dots[k], dots[l]): ..
프로그래머스 | Python | 겹치는 선분의 길이
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내 코드def solution(lines): minmin = min(i for i, j in lines) maxmax = max(j for i, j in lines) overlap = [0] * (maxmax - minmin) for i, j in lines: for k in range(i, j): overlap[k - minmin] += 1 answer = sum(1 for x in overlap if x >= 2) return answer코드설명선분 범위 계산: minmin과 maxmax는 ..
프로그래머스 | Python | 안전지대
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내코드def solution(board): answer = 0 n = len(board) mine = [[0]*n for _ in range(n)] directions = [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)] for i in range(n): for j in range(n): if board[i][j] == 1: mine[i][j] = 1 ..
프로그래머스 | Python | 연속된 수의 합
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내코드def solution(num, total): if num == 1: return [total] else: a = (total - (num * (num - 1)) // 2) // num return [a + i for i in range(num)]코드설명이 코드는 num개의 연속된 정수를 더한 값이 total이 되도록 하는 연속된 정수들의 리스트를 반환하는 함수입니다.num == 1: 만약 num이 1이면, 반환값은 total 그대로입니다. 즉, 연속된 수가 하나뿐일 때는 그 수가 바로 total이 됩니다.els..
프로그래머스 | Python | 다음에 올 숫자
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내코드def solution(common): diff = common[1] - common[0] if common[1] + diff == common[2]: # 등차수열 확인 return common[-1] + diff else: # 등비수열인 경우 ratio = common[1] // common[0] return common[-1] * ratio코드설명등차수열 확인:common[1] - common[0] 값을 diff로 저장하고, 이를 이용해 등차수열인지 확인합니다.만약 common[1] + dif..
프로그래머스 | Python | 특이한 정렬
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내코드def solution(numlist, n): answer = sorted(numlist, key=lambda x: (abs(x - n), -x)) return answer코드설명sorted() 함수와 key 매개변수를 사용하여 정렬 기준을 정의했습니다.key=lambda x: (abs(x - n), -x)는 두 가지 기준을 적용합니다:abs(x - n): 기준값 n과의 거리를 기준으로 정렬.-x: 거리가 같을 경우, 더 큰 숫자가 먼저 오도록 설정.결과적으로, numlist의 요소들을 n과 가까운 순서대로 정렬한 뒤 반환합니다.특징간결함: ..
프로그래머스 | Python | 문자열 밀기
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내코드def solution(A, B): if A == B: return 0 count = 0 for _ in range(len(A)): A = A[-1] + A[:-1] count += 1 if A == B: return count return -1코드설명먼저 A와 B가 동일하면 0을 반환합니다. (이미 같은 문자열이므로 회전이 필요 없기 때문)for 루프를 사용해 최대 len(A)번까지 A를 오른쪽으로 회전합니다.회전은 A[-1] + A[:-1]를 ..
프로그래머스 | Python | 유한소수 판별하기
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내 코드from math import gcddef solution(a, b): g = gcd(a, b) b //= g while b % 2 == 0: b //= 2 while b % 5 == 0: b //= 5 return 1 if b == 1 else 2코드 설명gcd 함수를 이용하여 분자와 분모의 최대공약수를 구하고, 분모를 최대공약수로 나눠 기약분수로 만듭니다.기약분수의 분모를 2로 나누고, 더 이상 2로 나눌 수 없을 때까지 반복합니다.동일하게 분모를 5로 나누고, 더 이상 5로 나눌 ..
프로그래머스 | Python | 등수 매기기
·
프로그래머스
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내코드def solution(score): averages = [(sum(scores) / 2) for scores in score] sorted_avg = sorted(averages, reverse=True) ranks = [sorted_avg.index(avg) + 1 for avg in averages] return ranks코드설명평균 점수 계산: 각 학생의 영어 점수와 수학 점수를 합산한 뒤 2로 나눠 평균 점수를 구합니다.내림차순 정렬: 구한 평균 점수를 내림차순으로 정렬합니다.등수 계산: 각 학생의 평균 점수를 기준으로 ..