알고리즘/19. 기타 3

GCD (Greatest Common divisor) 최대공약수 구하기

1. 기본적인 풀이 2개의 숫자 n, m을 입력받고, 최대공약수 출력하기.2부터 n이나 m 중 작은 숫자까지 나눴을 때 가장 큰 값이 최대공약수이다. n, m = map(int, input().split())ans = 1for i in range(2,min(n,m)+1): if n%i == 0 and m%i == 0: ans = iprint(ans)  2. 유클리드 호제법연산을 더 적게 해서 최대공약수를 구하는 방법 n, m = map(int, input().split())a = max(n, m)b = min(n, m)while(1): r = a % b if r == 0: ans = b break a = b b = rprint(ans) an..

알고리즘 문제 푸는 순서

예를 들어, 1문제를 푸는 데 50분이 걸리는 문제가 있다고 하자. 1) 문제 읽기 (8~10분)제한시간, 변수 n값의 범위 확인하기내가 어느 정도의 시간복잡도로 풀건지 문제가 꽤 길고, 그림도 있다.정말 꼼꼼하게 읽어야한다 "단, 이럴 경우에는" 이거 때문에 안될 수 있다. A알고리즘을 적용시킬지, B알고리즘을 적용시킬지맨 처음에는 쓱 읽기 (skimming)그림 보면서 대충 내가 이해한 내용이 맞는지 확인정독하면서, 내가 이해한 내용이 맞는지 확인하기 문제 풀다가 코드적고, 코드적다가 문제보고 그러면 안된다. Q. 무슨 문제 나왔어? 누가 이렇게 물어봤을 때, 시험 끝나고도 문제가 기억날 정도로 문제를 꼼꼼하게 읽어야한다. 2) 설계하기 (20분)★ 종이란 펜이 필수 강아지 집을 지을 때, 어떤 모양..

알고리즘 성능평가

Q. 알고리즘이란 ? 주어진 문제를 효율적으로 푸는 방법  Q. 알고리즘 성능평가란?어떤 코드가 문제를 얼마나 효과적으로 빠르게 푸는지 따져보는 것 시간이 짧다거나 메모리 사용량이 적다거나 하는 것 시간복잡도 공간복잡도누가 문제를 빠르게 해결했는지 Time complexity = 입력되는 data + 기본 연산 수행횟수 비교방법 3가지 : '최선표기법', '최악표기법', '평균표기법' PS(problem solving) 분야에서는'최악표기법' 중 '빅오표기법'을 사용한다누가 메모리를 적게 사용했는지  SW 역량평가 A형C, JAVA, Python SW 역량평가 B형C, JAVA