https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 알고리즘 분류 : 수학 풀이 1 : 육각형 단위로 구분하기 그림을 중앙을 중심으로 하는 여러개의 육각형의 형태로 나누어 보자. 중심에 있는 육각형은 1, 그 다음으로 큰 육각형은 1~7까지, 그 다음으로 큰 육각형은 1~19까지, 그 다음은 1~37까지, 그 다음은 1~61까지의 숫자로 이루어져 있다. 이렇게 나누어진 범위를 활용하면 쉽게 문제를 풀 수 있다. 예를들어 13의 경우, 3번째 육각형의 범위에..
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 알고리즘 분류 : 브루트포스 분해합 : 어떤 수 N과 N의 각 자리수를 모두 더한 값의 합. 생성자 : 어떤 자연수 M의 분해합이 N인 경우, M을 N을 N의 생성자라 한다. ex) 245 -> 245 + 2 + 4 + 5 = 256 245는 256의 생성자. 256은 245의 분해합. 자연수 N을 입력했을 때, N의 가장 작은 생성자를 구하는 프로그램을 작성하자. 접..
캐시 메모리, 가상 메모리, 메모리 관리 하드웨어 캐시 메모리 빠른 CPU 처리 속도와 상대적으로 느린 메인 메모리에서의 속도 차이를 극복하는 중간 버퍼 역할을 함. 데이터의 임시 보관소. 속도가 빠른 CPU와 느린 RAM 사이에서 오는 병목 현상을 해소하기 위해 사용됨. 메인 메모리보다 동작 속도가 더 빠르고 컴퓨터 시스템 속도 향상에 중요한 역할을 함. 캐시 메모리 Mapping Function CPU가 메모리 주소를 사용해 메모리로 데이터를 받으려고 한다. 메모리 관리 장치(MMU)는 메모리가 이해할 수 있는 물리 주소로 변환을 해준다. 각 주기억 장치 블록이 어느 캐시 라인에 적재될 것인지 결정해주는 방식을 mapping이라고 한다. 직접 매핑(Direct Mapping : 직접 사상) : 메모리..
Ellen asked to me to be her guest host today. She's taking the day off. I think She wanted to spend more time with some of her houses. And I get it. They grow up so fast, Don't they? I mean I don't wanna brag or anything, but... I am like either the 10th or maybe 11th person that Ellen asked to guest host her show. so this feels pretty special, I have to say. It's quite an honor. 엘런이 저에게 오늘 진행을 ..
https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 1 : 아스키코드 변환, count와 index함수를 이용한 풀이 S = input() arr = [0]*26 max_num = 0 index = 0 for i in range(len(S)): if ord(S[i]) >= 97: arr[ord(S[i])-32-65] += 1 else : arr[ord(S[i])-65] += 1 max_num = max(arr) index = arr.index(max_num) if arr.co..
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 1 : 아스키 코드를 이용한 방법 S = input() arr = [] for i in range(26): arr.append(-1) for i in range(len(S)): if arr[ord(S[i]) - 97] == -1: arr[ord(S[i]) - 97] = i for i in arr: print(i, end = ' ') 처음에 26가지 값을 -1로 설정하고 ord()..