Please contact me if you have any questions

- Elena.Kim -

홈으로
컴퓨터와 컴퓨팅

하드웨어 컴퓨터의 하드웨어는 중앙 처리 장치(CPU), 기억 장치, 입출력 장치 크게 3가지로 구성된다. 프로그래밍의 목적 CPU를 작동시켜 메모리에 데이터를 저장하고 연산하는 일 따라서 ‘프로그래밍을 잘 한다’, ‘성능을 개선한다’는 ‘간결한 코드 작성’이 아닌 CPU 와 메모리를 효율적으로 사용하는 것을 의미 0과 1 컴퓨터는 0과 1을 어떻게 구분할까? 전류는 전기의 흐름을 뜻한다. 전류의 양이 많으면 전기의 압력...

[PostgreSQL] Table Partitioning

최근 포켓몬고라는 게임을 즐기고 있다. 해당 게임의 데이터 구조를 설계하는 상상을 해 보았다. 우선 게임을 이용하는 유저와 포켓몬의 관계를 성립해야 할 것이다. 한 유저는 무수히 많은 수의 포켓몬을 포획할 수 있다. 무수히 많은 수의 포켓몬을 pokemon_storage라는 하나의 테이블에 삽입하게 되고, 추후 1000만 로우가 넘어서면, 데이터베이스의 쿼리 성능은 현저히 떨어지게 될 것이다. 이럴 경우, 고려해 볼 수 있는 방...

[Try Hello World] Level5 124 나라의 숫자

124 나라의 숫자 1,2,4 세 개의 숫자만 쓰는 124나라가 있습니다. 124나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법의 1 → 1 10진법의 2 → 2 10진법의 3 → 4 10진법의 4 → 11 10진법의 5 → 12 10진법의 6 → 14 10진법의 7 → 21 10진법의 수 N이 입력될 때, 124나라에서 쓰는 숫자로 변환하여 반환해주는 change124 함수를 완성해 보세요. 예를 들어 N =...

[Try Hello World] Level4 공항 건설하기

공항 건설하기 1보다 큰 N개의 도시 중 한 곳에 공항을 지을 예정입니다. 사람들의 편의를 위해 공항으로부터 각 사람들까지의 도시간 이동 거리가 최소가 되는 도시에 짓기로 하였습니다. 편의상 도시는 일직선상에 놓여있다고 가정하며 좌표의 범위는 음수가 포함됩니다. 또한 좌표는 정렬되어 있지 않습니다. 직선상의 위치와 그 도시에 사는 사람들의 수가 주어질 때, 공항을 지을 도시의 위치를 반환해주는 함수 chooseCity 함수를 완성하세요. ...

[Try Hello World] Level4 땅따먹기 게임

땅따먹기 게임 영희는 땅따먹기 게임에 푹 빠졌습니다. 땅따먹기 게임의 땅은 총 N행 4열로 나누어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 땅을 밟으면서 한 행씩 내려올 때, 영희는 각 행의 4칸 중 1칸만 밟으면서 내려올 수 있습니다. 땅따먹기 게임에는 같은 열을 연속해서 밟을 수가 없는 특수 규칙이 있습니다. 즉, 1행에서 (5)를 밟았다면, 2행의 (8)은 밟을 수가 없게 됩니다. 마지막 행까지 모두 내려왔을 때, 점수가 가장 ...

[Try Hello World] Level4 최고의 집합

최고의 집합 자연수 N개로 이루어진 집합 중에, 각 원소의 합이 S가 되는 수의 집합은 여러 가지가 존재합니다. 최고의 집합은, 위의 조건을 만족하는 집합 중 각 원소의 곱이 최대가 되는 집합을 의미합니다. 집합 원소의 개수 n과 원소들의 합 s가 주어지면, 최고의 집합을 찾아 원소를 오름차순으로 반환해주는 bestSet 함수를 만들어 보세요. 만약 조건을 만족하는 집합이 없을 때는 배열 맨 앞에 –1을 담아 반환하면 됩니다. 예를 들...

[Try Hello World] Level4 숫자의 표현

숫자의 표현 수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은 (1+2+3+4+5) (4+5+6) (7+8) (15) 로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 number_expression 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를...

[Try Hello World] Level3 멀리 뛰기

멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완...

[Try Hello World] Level3 N개의 최소공배수

N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. nlcm 함수를 통해 n개의 숫자가 입력되었을 때, 최소공배수를 반환해 주세요. 예를들어 [2,6,8,14] 가 입력된다면 168을 반환...

[Try Hello World] Level3 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다. 보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 caesar 함수를 완성해 보세요. “a B z”,4를 입력받았다면 “e F d”를 리턴합니다. 내 코드 [파이썬] import string def cae...