목록Python (280)
jyamethyst21 님의 블로그
문제: 정수로 이루어진 리스트를 입력받고, 해당 리스트에서 가장 작은 5개의 수를 제외한 나머지 값을 오름차순으로 정렬하여서 그대로 리턴하는 문제이다. 풀이:def solution(num_list): new = sorted(num_list, reverse=False) return new[5:]sorted 함수를 활용해서 리스트의 값을 오름차순으로 정렬하고(reverse를 False로 설정하면 오름차순, True로 설정하면 내림차순), 인덱싱을 활용해서 6번째 값부터 끝까지 리턴하도록 코드를 작성하였다.파이썬은 첫 번째 값이 0번째 인덱스이므로 0~4까지가 1~5번째에 해당하는 값이다. 그렇기 때문에 5부터 시작하도록 하여야 6번째에 해당하는 값부터 끝까지 출력된다.
문제: strArr 배열을 입력받고 'ad'가 포함된 경우 해당 문자열 제거, 포함되어 있지 않는다면 그대로 출력시켜주는 문제이다. 풀이:def solution(strArr): result = [] for i in strArr: if 'ad' not in i: result.append(i) return result반환할 결과 리스트인 result를 초기화하고 반복문을 돌면서 strArr에 들어있는 문자열을 순회한다.해당 값에 ad가 포함되어 있지 않으면 새로운 리스트에 해당 i의 값(ad가 포함되어 있지 않은 문자열)을 추가하고 최종적으로 완성된 리스트인 result를 반환하도록 코드를 작성하였다.
문제: 문자열에 a가 있으면 A로, 그 외의 문자는 전부 소문자로 바꾸는 문제이다. 풀이:def solution(myString): new_string = [] for i in myString: if i == 'a' or i == 'A': new_string.append('A') elif i != 'A' and i == i.upper(): new_string.append(i.lower()) elif i == i.lower(): new_string.append(i.lower()) return ''.join(new_string)문자열의 문자를 하나씩 검사해서 a나 A가 있으면 새로운 리스트에 A를..
문제: 정수 num이 n의 배수인지 확인해서 맞다면 1을, 아니라면 0을 리턴하는 문제이다. 풀이:def solution(num, n): if num % n == 0: return 1 return 0num을 n으로 나눈 나머지가 0이면 즉, 배수라면 1을 return 하고, 그게 아니라면 0을 리턴하는 간단한 문제이다.
문제: 문자열을 입력받고, 해당 문자열을 내림차순으로 재정렬해서 출력하는 문제이다. 풀이:def solution(s): new_li = sorted(s, reverse = True) return ''.join(new_li)new_li라는 새로운 리스트에 sorted 함수를 사용하여 문자열을 내림차순 정렬하고, 해당 함수를 쓰게 되면 리스트 형태로 결과값을 반환하기 때문에 문자열 형태로 바꿔주기 위하여 join 함수를 사용하였다.
문제: 문자열의 길이가 4 또는 6이면서 숫자로만 구성되어 있으면 True를, 그렇지 않다면 False를 출력하는 문제이다. 풀이:def solution(s): range_li = ['0','1','2','3','4','5','6','7','8','9'] if len(s) == 4 or len(s) == 6: swi = True for i in s: if i not in range_li: swi = False return swi return False숫자를 리스트에 담고 조건을 확인한다. 문제에서는 4글자 또는 6글자이면서 숫자로만 구성된 경우 True 출력이므로, 우선 길이를 먼저 검사하였..
문제: n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 리턴하는 문제이다. 풀이:def solution(n): for i in range(1, 1000001): if n % i == 1: return i문제의 제한사항을 참고하여 i를 1000000까지만 반복하도록 하였다. 이렇게까지 높게 잡을 필요는 없겠지만, 필자는 제한사항 그대로 반영하였다. 반복문 실행 시 1부터 1000000까지 i에 대입되고, n을 i로 나눈 나머지가 1일 경우 return을 만나 i의 값을 전달하고 해당 함수는 종료된다. 즉, n이 10이라면 i가 1일 때는 나머지가 0, 2일 때도 0, 3일 때는 나머지가 1이므로 3을 리턴하고 종료된다.
문제: 문자열을 입력받고 해당 문자열에 p, y의 개수가 동일하면(대소문자 구분 없음) true를, 그렇지 않다면 false를 리턴하면 되는 문제이다. 단, p, y 모두 하나도 없는 경우는 항상 true를 리턴해야 한다. 풀이:def solution(s): p_count = 0 y_count = 0 for i in s: if i=='p' or i=='P': p_count += 1 elif i=='y' or i=='Y': y_count += 1 if p_count == y_count: return True elif p_count != y_count: return False elif p..
문제: 자연수를 담은 배열이 주어지고 나눌 몫을 입력받을 때, 나누어 떨어지는 자연수만 배열에 오름차순으로 남긴 뒤 해당 배열을 출력하면 되는 문제이다. 이때 나눠 떨어지는 수가 1개라도 없다면 [-1]을 출력해야 한다. 풀이:def solution(arr, divisor): new_li = [] for i in arr: if i % divisor == 0: new_li.append(i) if len(new_li) == 0: return [-1] else: return sorted(new_li, reverse = False)오름차순 정렬을 반영 새로운 리스트인 new_li를 선언하고, 반복문을 돈다.자연수를 담은 arr 배열을..
문제: 숫자가 담긴 배열과, 부호가 담긴 배열을 입력받고, 각 부호를 반영해서 최종 숫자가 담긴 배열의 합을 리턴하는 문제이다. 풀이:def solution(absolutes, signs): total = 0 for i in range(len(signs)): if signs[i] == True: total += absolutes[i] elif signs[i] == False: total += (-absolutes[i]) return total총합을 리턴할 total 변수를 0으로 먼저 선언하고, 반복문을 돈다.필자는 부호를 담은 리스트인 signs를 전부 돌면서 signs의 값이 True일 경우, total에 숫자를 담은 리..
