분류 전체보기502 백준 1929 파이썬 - 소수 구하기 1. 문제 링크 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 2. 나는 어떻게 생각했는가? m, n = map(int, input().split()) for i in range(m, n + 1): count = 0 for j in range(2, i + 1): if i % j == 0: count += 1 if count > 1: break if count == 1: print(i) - 우선 단순 무식하게 접근해보았다. - 역시나 시간초과가 발생했다. - 그래서 이전에 배.. 2021. 8. 13. 백준 11653 파이썬 - 소인수분해 1. 문제 링크 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 2. 나는 어떻게 생각했는가? n = int(input()) case = [] devider = 2 while n > 1: if n % devider == 0: case.append(devider) n = n / devider else: devider += 1 if devider > n: break for i in range(len(case)): print(case[i]) 3. 코드 개선 - 맞았지만 시간이 오래 걸린다. - 백준에서는 언어마다 보너스 시간이 있기 때문에 맞았다고 나왔지만, 2초이상 .. 2021. 8. 12. 백준 2581번 파이썬 - 소수 1. 문제 링크 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 2. 나는 어떻게 생각했는가? - 앞서 풀이를 올려놓은 1978번을 풀었다면, 무난하게 풀 수 있는 문제다. - 약간의 생각만 더 하면 되는데, 그 부분이 시간초과에 관련된 부분이다. - 이중 FOR문을 사용하기 때문에 시간복잡도가 O(n제곱) 만큼 걸리기에, - 이를 최소화 해야 하는 방법을 생각해야 한다. - 입력값 m과 n이 커질수록, 시간초과가 발생할 확률이 높아진다. - 그러므로 소.. 2021. 8. 12. 백준 1978번 파이썬 - 소수 찾기 1. 문제 링크 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 소수란 1과 자신으로만 나눠지는 수 # 즉, 약수가 1과 자신밖에 없는 것 # 어떤 수 n에 대한 약수는 n보다 작다. # 즉, 약수 2021. 8. 12. 19. CPU 내부구조 - 입출력과 인터럽트 0. 시작하기전에 - 지금까지 CPU가 내부적으로 수행하는 일(마이크로 연산), 동작 방식을 배웠다. - 이전 포스팅에서 명령어의 구성과 명령어가 데이터를 가져오는 방식(주소지정방식)에 대해서 알아 보았다. - 그렇다면 CPU의 동작 방식에 대한 전반적인 이해가 생겼다고 할 수 있다. - 이번 포스팅에서는 CPU의 내부 동작방식을 생각하면서 입출력이 어떻게 처리되는지 알아보자. 1. 입출력 과정 a) 입출력의 구성 - 컴퓨터의 모든 연산은 레지스터를 필요로 한다. 입출력 또한 마찬가지로 레지스터를 적극 활용한다. - 입출력은 다음과 같은 과정을 거친다. ▶ 입력장치를 통해 입력값이 시리얼 통신 인터페이스를 통해 컴퓨터에 들어온다. ▶ 컴퓨터에 들어온 입력값은 INPR(Input Register)에 저장된.. 2021. 8. 12. 18. CPU 내부구조 - 명령어와 주소지정방식 0. 시작하기 전에 - 이전 포스팅까지 CPU가 어떻게 명령어를 처리하는지에 대해서 배우면서, - 명령어를 처리하기 위해 필요한 CPU 내부의 연산(마이크로 연산)에 대해 알아보았다. - 이번 포스팅에서는 마이크로 연산의 명령어는 어떻게 설계되며, 어떤 구조를 이루는지에 대해서 알아보자. 1. 명령어를 설계하는 방법 - 마이크로 연산을 위한 명령어는 CPU 내부에서 사용된다. - 즉, 레지스터와 같은 하드웨어가 이해하는 명령어를 의미한다. - 그러나 이를 사용하는 대상은 사람이기에 사람이 알아들을 수 있어야 한다. - 이러한 관점에서 명령어를 설계하는 방법에는 두가지가 있다. a) 자연어에 가까운 명령코드 ▶ 장점 - 프로그램의 소스코드 길이가 짧아진다. → 자연어는 함축적인 의미가 담겨있기에 짧은 길이.. 2021. 8. 12. 17. CPU 내부구조 - 마이크로 연산과 ALU 0. 시작하면서 - 이전 포스팅에서 CPU가 어떻게 동작하는지, 명령어는 어떻게 처리하는지 알아보았다. - 더불어, 명령어는 어떤 형식으로 구성되어 있고 CPU는 어떤 방식으로 설계되는지 또한 알아보았다. - 이번 포스팅에서는 CPU가 연산을 수행할 때 필요로 하는 마이크로 연산과 ALU에 대해서 알아보자. 1. 마이크로 연산(micro - operation) a) 개념 - 레지스터에서 저장된 데이터를 대상으로 수행되는 연산을 말한다. - 즉, CPU 내부에 존재하는 레지스터의 상태를 변경시키는 동작이다. - 마이크로 연산은 다음과 같이 분류된다. ▶ 전송 - 레지스터 간의 데이터(이전 정보)를 주고 받는다. ▶ 산술 연산 (사칙연산, 증감, 보수, etc) - 레지스터에 저장되어있는 데이터를 대상으로 .. 2021. 8. 12. 백준 1011번, 파이썬 - Fly me to the Alpha Centauri https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net # 최고속도를 찍는 지점을 찾는다. 이 경우, 세가지 경우가 발생한다. # case 1) 최고속도를 찍은 지점까지의 거리와 남은 거리(a, 알파)가 동일한 경우 # case 2) 최고 속도를 찍은 지점까지의 거리 < 남은 거리(a, 알파)의 경우 # case 2-1) 0 < a 2021. 8. 11. 백준 10757번, 파이썬 - 큰 수 A + B https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net a, b = map(int, input().split()) print(a + b) # C언어의 경우, 자료형에 따른 메모리가 한정되어 있기 때문에 # 10757번 같은 문제를 풀기 어렵다. # 파이썬의 경우, 언어 자체적으로 BigInt를 지원하기 때문에 문제없이 연산이 가능하다. # 그렇다면 파이썬이 Integer로 표현할 수 있는 최대값은 몇일까? import sys max_num = sys.maxsize max_num2 = sys.maxsize + 1 print("max_num =", type(max.. 2021. 8. 11. 이전 1 ··· 26 27 28 29 30 31 32 ··· 56 다음