전체 글

전체 글

    [python] Class 변수 탐구

    Class 에 대해 알아보다 인터넷에서 조금 이상한 코드를 발견하였다. class Car: color = "" #인스턴스 변수 speed = 0 # 인스턴스 변수 count = 0 # 클래스 변수 def __init__(self): self.speed = 0 Car.count += 1 # 변수 선언 myCar1, myCar2 = None, None # 메인 코드 부분 myCar1 = Car() myCar1.speed = 30 print("%dkm, %d"%(myCar1.speed, Car.count)) myCar2 = Car() myCar2.speed = 60 print("%dkm, %d"%(myCar2.speed, myCar2.count)) # 결과 # 30km, 1 # 60km, 2 자 이 코드로 C..

    [프로그래머스] 도둑질

    https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr dynamic programming을 이용하여 푸는 문제입니다. 이때, dp table 두개를 tracking 해야 합니다. 문제부터 간단하게 요약하면, 도둑이 아래그림처럼 원형으로 구성된 마을을 털 계획을 하고 있는데, 인접한 두 집을 털면 경고음이 울립니다. 이 때 도둑이 털 수 있는 가장 큰 금액을 return 해야 하는 문제입니다. 즉, solution(m..

    [프로그래머스] 등굣길

    https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 다이나믹 프로그래밍을 이용하는 문제입니다. 우선 문제부터 요약해보면, m*n의 격자 판에서 등교를 하게 되고 물웅덩이가 있습니다. 이때, 물웅덩이를 밟지 않고, 오른쪽과 아래로만 이동하여 학교로 도착하는 최단 경로의 갯수를 return해야 합니다. 즉 solution(m,n,puddles)에 m,n : 격자의 크기 puddles : 물웅덩이의 위치 가..

    [프로그래머스] 정수 삼각형

    https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 다이나믹 프로그래밍을 사용하는 문제라고 합니다. 저는 다르게 접근한 것 같은데 우선 문제부터 요약해 보도록 하겠습니다. 다음과 같은 삼각형에서 위에서 부터 가장 아랫층 까지 쭉 타고 내려오는 경로가 있으면, 그 경로에서 가장 커지는 값을 return 하는 문제입니다. 즉 solution(triangle)에 triangle : 삼각형의 정보 가 주어질 때, 거쳐간 경로의 숫자의 최댓값을 return해야 합니다. 아이디어는 다음과 같습니다...

    [프로그래머스] N으로 표현

    https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr Dynamic programming을 사용하는 문제로 분류 되어 있는데 완전히 점화식 같은 것을 세워 푸는 문제는 아닌 것 같습니다. 우선 문제부터 간단히 요약해보면, 사칙연산으로 특정 수를 하나의 숫자로 만들어야 하는데 이 때 걸리는 최소 횟수를 return하여야 합니다. 12를 5로 나타내는 방법들입니다. 이중에서 가장 적게 5를 사용하는 경우 4번 사용해서 12를 구성할 수 있습니다. 따라서 이 때는 4를 return 해야 합니다. 즉 solution(N, number)에서 N : 1~9까지의 정수 number : 만들어야 하는 수 가..

    [프로그래머스] 외벽 점검

    https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 중복없이 전체 탐색을 해야하는 까다로운 문제입니다. 우선 문제부터 간단하게 요약하면, 다음과 같이 원의 각각 모서리 마다 weak한 지점들이 있는데 사람들을 보내서 이 weak한 지점들을 모두 탐색하는 최소인원수를 구해야하는 문제입니다. 링크를 들어가 문제를 읽어보는 것을 추천합니다. solution(n, weak, dist) 안에 n : 외벽의 길이 weak ..

    Congestion Avoidance and Control (Van Jacobson)

    https://dl.acm.org/doi/10.1145/52324.52356Congestion avoidance and control | Symposium proceedings on Communications architectures and protocolsOverall Acceptance Rate 331 of 2,663 submissions, 12%dl.acm.org오늘날 네트워크 책들에 나오는 congestion control과 관련한 부분들을 그대로 읽어볼 수 있는 굉장히 유명한 논문이다. 앞으로는 논문을 읽게 되면 여기에 리뷰해 보도록 해봐야겠다. 이 논문의 경우 ppt를 만들어 두었기에 첫 게시물로 대체한다. 발표 script도 있으니 참고하길 바란다. 발표자 ppt가 딱히 마땅한 게 없어서 블..

    [백준] 이항 계수 3(페르마 소정리, modular inverse, 분할정복)

    https://www.acmicpc.net/problem/11401 11401번: 이항 계수 3 자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. www.acmicpc.net 페르마 소정리를 이용한 모듈러 역원과 분할정복을 활용하는 문제입니다. 문제부터 간단히 요약해보면, nCk의 값을 1,000,000,007로 나눈 나머지를 구하라는 문제입니다. 굉장히 간단해 보이지만, nCk의 값에서 n의 범위가 4,000,000 까지 가능하므로 그냥 직접 계산을 할 시 바로 시간초과가 되게 됩니다. 아이디어와 주의해야하는 점에 대한 이야기를 해 보도록 하겠습니다. 우선 아이디어는 다음과 같습니다. 다음..