분류 전체보기

    (파이썬) 백준 2665. 부녀회장이 될테야

    문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..

    명제 논리(propositional logic)

    명제(proposition) 참 또는 거짓 중 하나를 나타내는 선언적 문장이다. 명제인 예: 미국의 수도는 워싱턴 D.C이다. 캐나다의 수도는 토론토이다. 명제가 아닌 예: 몇 시입니까? 이것을 주의 깊게 읽어라. 명제를 표현하는 변수를 p, q, r, s 등 문자로 나타낸다. 명제의 진리값(truth value)이 참일 때는 T, 거짓일 때는 F로 나타낸다. 더 나누어질 수 없는 명제는 단순명제이다. 부정(negation) $p$가 명제라 하면 $p$의 부정은 $\neg p$ or $\bar{p}$로 나타내고, "It is not the case that p."의 문장이 된다. $p$ $\neg p$ $T$ $F$ $F$ $T$ 논리곱(conjunction) $p$와 $q$가 명제라 하면 $p \lan..

    (파이썬) 백준 10250. ACM 호텔

    문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

    (파이썬) 백준 2869. 달팽이는 올라가고 싶다

    문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 구상 올라가는데 걸리는 날을 x라 하자. 달팽이는 매일매일 $(a-b)$만큼 이동한다. 마지막 날에는 a만큼 올라가면 정상에 도착하므로 b만큼 미끄러지지 않는다. 따라서 $(x-1)$일 동안 올..

    블록체인 암호학 - 암호학 기본 내용, 블록체인 암호 기술

    암호 핵심 모듈 대칭 암호(Symmetric Cryptography) 정보를 보내는 사람과 받는 사람이 같은 키를 사용하는 방법이다. 송신자는 키(key)를 사용해 메시지를 섞어 해석할 수 없는 텍스트 문자열로 만든다. 뒤섞인 메시지가 목적지에 도착하면 수신자는 동일한 키로 텍스트를 해독해 메시지를 드러낸다. 대칭 암호화 방식은 키가 핵심적인 역할을 맡는다. 메시지를 교환하기 전에 키에 대한 합의를 하거나, 수신 당사자에게 키를 전달해야 한다. 이 때문에 키가 위험에 노출된다. 제삼자가 키를 취득하면 중간에 메시지를 가로채 해독할 수 있다. 비대칭 암호(Asymmetric Cryptography) 정보를 보내는 사람과 받는 사람이 다른 키를 사용하는 방법이다. 공개키 암호(Public-key Crypto..

    (파이썬) 백준 1193. 분수찾기

    문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. 입력 X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 출력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 첫째 줄에 분수를 출력한다. 구상 분모를 a, 분자를 b라 하자. k는 대각선으로 몇 번 왔다갔다 했는지 나타낸다. k a b count 1 1 1 1 2..

    <C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(11, 12)

    11. 2*3 행렬 A와 3 * 4 행렬 B를 곱한 결과인 2 * 4 행렬 C를 구하여 다음과 같이 출력하시오. #include #define M 2 #define N 3 #define O 4 int main() { int a[M][N] = { {1,2,3}, {4,5,6} }; int b[N][O] = { {3,4,5,6}, {1,2,4,3}, {4,2,6,1} }; int c[M][O] = { 0 }; int i, j, k; for (i = 0; i < M; i++) { for (j = 0; j < O; j++) { for (k = 0; k < N; k++) { c[i][j] += a[i][k] * b[k][i]; } } } for (i = 0; i < M; i++) { printf("["); for..

    (파이썬)백준 1065. 한수

    문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 구상 n을 입력받는다. 1부터 99까지는 모두 한수이므로 이 경우 res에 1을 더한다. 100부터 999까지는 각 자리를 따로 저장한다. a에는 백의 자리, b에는 십의 자리, c에는 일의 자리를 저장하고, a-b가 b-c가 같으면, 즉 등차수열이면 True를 반환한다. 3번을 수행하는 함수 han이 Tru..