[프로그래머스] 2 x n 타일링 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12900?language=python3
2. 풀이 방법
arr[i] 의 값을 구하기 위해서는 아래의 2가지 경우의 수가 존재합니다.
arr[i-1] 의 모든 경우의 수에서 세로 막대기 1개를 추가하는 경우
arr[i-2] 의 모든 경우의 수에서 가로 막대기 2개를 추가하는 경우(세로 막대 2개를 추가하는 경우는 이미 위의 케이스에 해당 됨)
즉, arr[i] = arr[i-1] + arr[i-2] 인 것을 알 수 있습니다.
3. 소스코드
3.1. python 시간 초과 코드
숫자가 매우 커...
[백준] 2399번 풀이 _ 거리의 합
1. 문제
https://www.acmicpc.net/problem/2399
2. 풀이 방법
2.1. $ O(N^2) $ 풀이
보자마자 떠오르는 생각. 직접 하나하나씩 비교해서 값을 구합니다.
c언어의 경우에 통과할 수 있지만, python은 이렇게 해도 시간초과가 발생합니다.
2.2. $ O(N) $ 풀이
모든 구해야 하는 값을 위의 그림처럼 표로 나열해봅니다. 그러면 앞에 있는 [i] 의 개수는 $ i $개, 뒤에 있는 -[i] 개수는 $ n - i - 1 $ 개가 나오게 됩니다. 두 수의 합은 $ i * i + -i * (n - i - 1) = i * i + i * (-n + i + 1) = i...
Repeater, Redriver, Retimer란? 개념 정리
1. Repeater란?
1.1. Repeater의 정의
repeater의 역할
위키백과에서는 Repeater에 대하여 아래와 같이 언급하고 있습니다.
중계기(中繼器, 영어: repeater, 문화어: 반복기)는 신호를 받아 더 높은 수준에 더 높은 힘으로 방해가 되는 곳의 반대 쪽으로 재전송함으로써 신호가 더 먼 거리에 다다를 수 있게 도와 주는 전자 기기이다. 라디오 중계기(radio repeater), 전화 중계기(telephone repeater) 등이 있다.
전기 통신 분야에서 “중계기”라는 용어는 다음과 같은 의미를 표준으로 잡고 있다:
원본이 아날로그냐 디지털이냐에 ...
python 문자열(string)의 단어(character)를 list로 바꾸기
python에서 string의 단어(character)를 list로 만드는 방법은 아래와 같이 쉽게 할 수 있습니다.
List Comprehension를 사용하는 방법
def str_split(word):
return [char for char in word]
print(str_split('test'))
list()를 사용하는 방법
def str_split(word):
return list(word)
print(str_split('test'))
[백준] 10026번 풀이 _ 적록색약
1. 문제
https://www.acmicpc.net/problem/10026
2. 풀이 방법
모든 row와 col 을 살펴보면서 해당 블록의 주변에 있는 요소들이 같은 색일 경우에 방문한 것으로 체크하고, dfs를 통하여 상하좌우 요소들을 모두 살펴봅니다.
3. 주의 사항
import sys
sys.setrecursionlimit(100000)
python은 재귀함수 호출 횟수가 제한되어 있어(1000회) 그 횟수를 늘려주기 위한 메소드를 사용해야 문제에서 런타임 에러가 나지 않습니다.
4. 소스코드
import sys
sys.setrecursionlimit(100000)
N = int(inpu...
[백준] 1075번 풀이 _ 나누기
1. 문제
https://www.acmicpc.net/problem/5585
2. 풀이 방법
residue 에서 N 의 뒤 두 자리 숫자가 0이 되게 합니다. 이 숫자를 A라고 하겠습니다.
A를 나누는 수 F로 나눠줍니다.
F가 0이면 : 나눠 떨어진다는 의미이기 때문에 00을 출력합니다.
F가 0이 아니면 : F와 나머지의 차이만큼 N에 값을 더해주면 정답입니다.
3. 소스코드
N = int(input())
F = int(input())
residue = ( N - (N%100) ) % F
if residue == 0 :
print("0...
[백준] 5585번 풀이 _ 거스름돈
1. 문제
https://www.acmicpc.net/problem/5585
2. 풀이 방법
가장 비싼 값을 가진 코인부터 가진 돈에서 빼주면서 개수를 구하면 항상 최소 동전의 개수가 나옵니다.
3. 소스코드
coin = [500, 100, 50, 10, 5, 1]
_input = 1000 - int(input())
coin_num = 0
for _coin in coin:
now_coin = (int) (_input / _coin)
if now_coin > 0 :
_input = _input - (now_coin * _coin)
coin_num += now_...
열 설계 전력(TDP)이란? 개념 정리
열 설계 전력(Thermal Design Power, TDP)은 어떠한 작업을 하더라도 Cooling system이 열을 조절할 수 있게 설계된 computer chip(cpu나 gpu 같은)이나 component에 의하여 열이 발생되는 최대 양입니다. 쉽게 풀어쓰면, Cooling System이 최대로 조절할 수 있는 열의 크기 혹은 시스템을 안정적으로 작동시키는 데 요구되는 방열 능력이라고 할 수 있습니다. 예를 들어, 컴퓨터의 CPU 냉각 시스템이 20W의 열 설계 전력(TDP)으로 설계되어 있다고 하면, 노트북의 구성 요소들은 최대 20W의 열을 방출할 수 있습니다.
제조업체마다 TDP의 값을 다르게 정의...
IaaS, PaaS, SaaS 란? 개념 정리
1. IaaS(Infrastructure as a Service)란?
서비스 제공자가 컴퓨팅 리소스를 네트워크를 통해 서비스로 제공하는 모델입니다.
IaaS의 대표적인 서비스에 스토리지, 호스팅, 컴퓨팅, 네트워킹 등이 포함됩니다.
자신이 직접 서버 컴퓨터를 구매해서 네트워크 설정을 하고 보안 설정을 하는 등의 복잡한 과정이 필요없습니다. 필요할 때, 필요한 만큼의 자원만 빌려서 사용할 수 있습니다.
직접 서버 컴퓨터를 구매할 필요는 없지만, 다양한 서비스 구축에 대한 지식이 필요합니다. 예를 들어, 서버 인스턴스를 만들어서 트래픽 관리를 하지 않으면 서버가 터질 수 있는 것입니다.
아마존의 ...
[백준] 4673번 풀이 _ 셀프 넘버
1. 문제
셀프 넘버한국어
시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB44603228871851251.792%
문제셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수...
797 post articles, 80 pages.