목록Algorithm (37)
하루한줄 코딩일기

프로그래머스 > 음양 더하기 문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 absolutes signs result [4,7,12] [true,false,true] 9 [1,..

백준 > 소수 구하기 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입출력 입력 출력 3 16 3 5 7 11 13 👊 내 문제 풀이 직전에 푼 인프런 에라토스테네스 체 문제와 동일한 유형의 문제를 찾아서 풀어봤다. n+1 크기의 리스트를 만들어 소수 판별을 한 결과 값을 반영한 후, m ~ n+1 구간에 있는 소수를 출력했다. 소수 판별 알고리즘은 이전의 에라토스테네스 체 문제와 동일하게 사용했다. [참고] [인프런 - 파이썬 알고리즘 문제풀이] 2.7 소..

인프런 > 파이썬 알고리즘 문제풀이 섹션 2.7 소수(에라토스테네스 체) 👊 내 문제 풀이 가장 원초적으로 풀어봤다. 숫자 i를 2 이상, i 미만의 수로 나눠 나머지가 0인 경우가 나오지 않을 경우, i는 소수라고 판단한다. 소수라고 판단하기 위해선 전체 경우의 수를 탐색해야 하기 때문에 시간 복잡도가 구린 코드다. n=int(input()) sosu = [2] is_sosu=False for i in range(3,n):#2는 소수, 3부터 소수 검사 for j in range(2,i): if i%j==0: is_sosu=False break else: is_sosu=True if is_sosu == True: sosu.append(i) print(len(sosu)) 채점 결과 역시 시간 초과로 실패..

인프런 > 파이썬 알고리즘 문제풀이 섹션 2.6 자릿수의 합 👊 내 문제 풀이 자릿수의 합을 돌려주는 digit_sum 함수를 작성하는 문제다. 최대한 내장함수를 사용해 간단하게 코드를 작성하려고 했다. 숫자 x를 string 처리 한 후, map 함수를 사용해 각 자릿수를 나누고 다시 int형으로 변환 한다. 다음 sum 함수로 합을 구해 각 자릿수의 합을 return 한다. def digit_sum(x): return sum(list(map(int,str(x))))#list로 변환하지 않고 sum 사용 가능 N = int(input()) arr = list(map(int, input().split())) max = -9999999 answer = 0 for i in arr: dsum = digit_s..

백준 > 1차원 배열 👊 내 문제 풀이 백준 > 1차원 배열 > 최소, 최대 1. 10818번 : 최소, 최대 input 대신 readline 함수를 써봤다. import sys n = int(input()) arr = list(map(int, sys.stdin.readline().split())) print(min(arr),max(arr)) 백준 > 1차원 배열 > 최댓값 2. 2562번 : 최댓값 num = [] for i in range(9): num.append(int(input())) print(max(num)) print(num.index(max(num))+1) 백준 > 1차원 배열 > 숫자의 개수 3. 2577번 : 숫자의 개수 처음엔 temp 리스트를 만들고, 숫자 n일 경우 temp의 n..

백준 > while문 👊 내 문제 풀이 백준 > while문 > A+B - 5 1. 10952번 : A+B - 5 while True: a, b = map(int, input().split()) if(a==0 and b==0): break print(a+b) 백준 > while문 > A+B - 4 2. 10951번 : A+B - 4 입력이 끝날 때 까지 A+B를 출력하는 EOF(End Of File) 문제. try-except문으로 예외처리를 해서 해결한다. while True: try: a, b = map(int, input().split()) print(a+b) except: break 백준 > while문 > 더하기 사이클 3. 1110번 : 더하기 사이클 새로운 숫자 newNum이 입력 받은 숫자..

백준 > for문 👊 내 문제 풀이 백준 > for문 > 구구단 1. 2739번 : 구구단 n = int(input()) for i in range(1, 10): print(n,"*",i,"=",n*i) 백준 > for문 > A+B - 3 2. 10950번 : A+B - 3 T = int(input()) for i in range(T): a, b = map(int, input().split()) print(a+b) 백준 > for문 > 합 3. 8393번 : 합 n = int(input()) sum = 0 for i in range(1,n+1): sum += i print(sum) 백준 > for문 > 빠른 A+B 4. 15552번 : 빠른 A+B 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 ..