코딩 테스트/do it! 알고리즘 코딩테스트100 039 소수&팰린드롬 첫번째 코드 소수를 구하는 코드는 이전 문제에서부터 열심히 작성해봤다.그래서 소수를 구성하는 코드는 머리를 조금 쓰면 금방 작성했는데...거꾸로해도 똑같은!! 이 부분이 문제여서 책을 참고했다.근데 그냥 인덱스를 통해서 같은지 같지 않은지 판별하는 함수를 따로 만들어 이용했다. import sys import math input = sys.stdin.readline n = int(input()) max_num = 1000000A = list(range(max_num + 1)) A[1] = 0 for i in range(int(math.sqrt(max_num)) + 1): if A[i] == 0: continue else: for j in range(i * i, .. 2024. 6. 6. 040 제곱 ㄴㄴ 수 첫번째 코드 사실 문제를 보고 풀만하지 않나...라고 생각했는데진행하면 진행할수록 머리속이 뒤죽박죽 개판새판일 돌아가버렸다... 그래서 책을 참고하여 코드를 작성했다..근데 문제는 아직 책의 코드를 온전히 이해하지 못했다.다음에 조금 더 천천히 생각하면서 다시 풀어보아야 하는 문제라고 생각한다... 추후 코드에 대한 온전한 이해가 되고 추가적인 설명이 필요하면 추가하도록 하자! import sys import math input = sys.stdin.readline n, m = map(int, input().split()) A = [False] * (m - n + 1) for i in range(2, int(math.sqrt(m) + 1)): divisor = i * i index = in.. 2024. 6. 6. 037 소수 구하기 첫번째 코드 에라토스테네스의 체를 이용해서 소수를 구하는 코드를 작성하자!! 먼저 원하는 숫자까지 0으로 구성된 리스트를 만든다!(소수가 아닌 아이들은 0으로 바꿀 것이다! 이때 0과 1은 모두 0으로 바꾼다!!)그리고 제곱근까지 반복문을 진행한다!만약 해당 값이 0이면 다음 숫자를 확인하고만약에 0이 아니면 i말고 그 다음 i번부터 숫자 끝까지 i의 배수들을 모두 0처리한다.원하는 부분의 결과만을 추출한다. import sys import math input = sys.stdin.readline n, m = map(int, input().split()) A = list(range(m+1)) A[1] = 0 for i in range(2, int(math.sqrt(m))+1): if A[i] ==.. 2024. 6. 4. 038 거의 소수 첫번째 코드 소수 구하기를 위한 에...라토스테네스의 체를 이용하는 코드를 작성하자!! 까지는 잘 작성했는데,마지막에 거듭제곱에서 더하는 것에서 애를 먹어 책에서 참고했다!! 책과 에라토스테네스의 체를 이용하는 과정은 똑같지만범위 구성에서 생각이 조금 다르다. 책은 그냥 모든 숫자에 대해서 진행하였지만,나는 거듭 제곱이면 최대값에서 2제곱 아래까지만 진행하여 거기서 소수를 구하고마지막에 소수의 숫자들이 최소값 이상, 최대값 이하인 경우만 구하면 된다고 생각했다. 둘다 정답에 도달한다! import sys import math input = sys.stdin.readline n, m = map(int, input().split()) M = int(math.sqrt(m)) A = list(range(M + .. 2024. 6. 4. 036 잃어버린 괄호 첫번쨰 코드 뺴기를 기준으로 나누어 괄호가 있다고 생각하면 된다.즉, 5 + 6 - 1 + 2 + 3 - 4 + 5라고 한다면 5 + 6 - (1 + 2 + 3) - (4 + 5)인 것이다. 이를 위해 데이터를 '-'기준으로 분리한다.나눈 각 원소를 다시 '+'기준으로 분리하고 숫자로 만들어 더한다.그리고 첫번쨰 원소는 그대로 두고, 다음부터 빼면서 더해간다. import sys input = sys.stdin.readline A = list(map(str, input().split('-'))) answer = 0 def total_sums (x): total = 0 sum_numbers = map(int, x.split('+')) for i in sum_numbers: .. 2024. 5. 30. 035 회의실 배정 첫번째 코드 그리디 알고리즘을 이용한다.책과 비슷한 시간으로 문제를 바라보았다. sort문을 통해 1. 끝나는 시간이 빠른 기준 2. 시작하는 시간이 빠른 기준 으로 줄을 세운다.시작하는 시간 기준으로 다음에 바로 이용이 가능하다면 바로 채우는 코드를 작성한다.하지만 sort에서 애를 먹어 책을 참고했다. n = int(input()) A = [[] for _ in range(n)] for i in range(n): s, e = map(int, input().split()) A[i].append(e) A[i].append(s) A.sort() end = -1 answer = 0 for i in A: if i[1] >= end: answer += 1 .. 2024. 5. 30. 이전 1 ··· 8 9 10 11 12 13 14 ··· 17 다음 728x90