전체 글

전체 글

    [Python] 파이썬 for-else

    보통 else문은 if문과 함께 사용되지만 파이썬에서는 for문과도 함께 사용됩니다. for문이 break문으로 중간에 빠져나오지 않은 경우 else문을 실행하게됩니다. for i in range(1, 4+1): if i == 3: break print(i) else: print("반복문이 정상적으로 종료되었습니다.") 결과) 1 2 if문에 걸려서 break로 탈출했기 때문에 else문이 작동하지 않았습니다. for i in range(1, 4+1): if i == 5: break print(i) else: print("반복문이 정상적으로 종료되었습니다.") 결과) 1 2 3 4 반복문이 정상적으로 종료되었습니다. 반복문 중 i == 5인 경우는 없기 때문에 else문이 실행되었습니다. 기존 방식 중 ..

    [Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)

    [Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)

    에라토스테네스의 체 소수를 구할때 많이 사용되는 에라토스테네스의 체를 알아보겠습니다. 소수를 구하는 첫번째 방법으로는 모든 숫자를 1에서부터 원하는 수 n까지 완전 탐색으로 소수를 찾아주는 방법이 있습니다. 가장 확실한 방법이지만 시간이 많이 걸린다는 단점이 있습니다. n까지의 소수를 구하는 코드 : 시간복잡도(O2) def PrimeNumber(n): res = [] for i in range(2, n+1): check = True for j in range(2, i): if i % j == 0: check = False break if check: res.append(i) return res 완전탐색을 사용해서 하나하나 모든 수를 체크해주는 방법입니다. 에라토스테네스의 체는 소수를 구하는데 시간을 단..

    [백준] 11650: 좌표 정렬하기

    [백준] 11650: 좌표 정렬하기

    11650번: 좌표 정렬하기  import sysdef solution(): n = int(sys.stdin.readline().strip()) answer = [] for _ in range(n): x, y = map(int, sys.stdin.readline().split()) answer.append((x, y)) answer.sort(key=lambda x : (x[0], x[1])) for a, b in answer: print(a, b)solution()

    [Algorithm] 유클리드 호제법(최대공약수, 최소공배수)

    [Algorithm] 유클리드 호제법(최대공약수, 최소공배수)

    1. 유클리드 호제법 : 두 수가 서로 상대방 수를 나누어서 원하는 수를 얻는 알고리즘 큰 수들의 최대공약수를 구할때 사용할 수 있습니다. 최소공배수도 응용을 거쳐 구할 수 있습니다. 2개의 자연수 a, b가 있을 때 a를 b로 나눈 나머지를 r이라 할때 a와 b의 최대공약수는 b와 r의 최대공약수와 같습니다. 단 (a > b)이어야 합니다. 과정을 b가 양수일때까지 반복하고 마지막의 a값이 최대공약수가 됩니다. def gcd(a, b): while b > 0: a, b = b, a % b return a 리턴 값 a가 최대공약수 2. 최소공배수 A와 B의 곱을 최대공약수로 나누어주면 최소공배수가 됩니다. 그래서 최소공배수를 구하기 위해선 최대공약수를 구하는 함수를 미리 만들어 놓는것이 좋습니다. A와 ..

    [백준] 2164: 카드2

    [백준] 2164: 카드2

    https://www.acmicpc.net/problem/2164 2164번: 카드2N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가www.acmicpc.net  import sysfrom collections import dequedef solution(): n = int(sys.stdin.readline().strip()) q = deque(range(1, n+1)) while len(q) > 1: q.popleft() q.append(q.popleft()) print(q[0])solution()q.appen..

    [Python] 파이썬 리스트 슬라이싱 - (슬라이싱 추가예정)

    리스트 슬라이싱 : 리스트에 있는 여러개의 요소를 접근하기 위한 방법  슬라이싱은 리스트, 문자열, 튜플 등 연속적인 객체들에 범위를 지정해서 가져오는 기능입니다. 슬라이싱을 하면 객체를 가져오게 되므로 일부분을 복사해서 가져온다고 생각하면 됩니다.  1. 반복문을 사용하지 않고 5번째 회사까지 출력Com = [ 'SamSung', 'Naver', 'Kakao', 'Line', 'Amore_pacific', 'Toss', 'Cj', 'Lg', 'Coupang', 'Nexon' ]print(Com[0:5])  결과)['SamSung', 'Naver', 'Kakao', 'Line', 'Amore_pacific']  파이썬의 리스트와 마찬가지로 첫번째 인덱스는 0으로 시작합니다.  그리고 뒷부분은 5로 지정해..