Algorithm

    [1075번] 나누기

    백준 1075번: 나누기 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 저는 이 문제를 보자마자 그리 크지 않은 수에 시간제한도 1초라 '브루트 포스 알고리즘'을 사용해도 상관없을 거라 생각했습니다. 그래서 for문을 통해 하나하나 검사해주었습니다. [소스 보기]

    [9713번] Sum of Odd Sequence

    백준 9713번: Sum of Odd Sequence 9713번: Sum of Odd Sequence First line of the input contains T, the number of test cases. Each test case contains a single integer N. N is between 1 and 100. www.acmicpc.net 간단한 수학 문제입니다. 테스트 케이스 $T$개만큼 홀수 $N$를 입력받고, 1부터 N까지의 홀수의 합을 출력하면 된다. 풀 수 있는 방법은 for문 같은 반복문을 이용하여 직접 더해줄 수도 있지만, 좀 더 빠르게 하려면 우리가 배운 간단한 수열의 합을 이용하면 됩니다. 1~N까지의 홀수의 합(1+3+ ... + N) : $ (\frac{N + 1..

    [2456번] 나는 학급회장이다

    백준 2456번: 나는 학급회장이다 2456번: 나는 학급회장이다 첫째 줄에는 반의 학생들의 수 N (3 초등부 2번 간단할 줄 알고 했는데 의외로 코드 길이가 길어지길래 놀랐습니다. 조건을 잘 맞추어 코딩하기만 하면 되는데 어떻게 하면 간단히 작성할 수 있을까를 생각하는데 집중했습니다. 일단 조건문이 중요하니 본문에서 언급된 조건들이 잘 처리되도록 if ~ else if 문을 적절히 사용했습니다. 그리고 맞긴 했지만 1133Byte라는 긴 코드가 나오더군요... 그래서 다른 분들이 푼 것 중 450Byte 근처로 나온 코드를 보니 대단하더군요. 그중 마음에 들었던 하나는 pair p[3]으로 선언을 하고 p[i].first -> 입력받은 i번 후보의 선호도(1, 2, 3)를 모두 더하는 곳 p[i].s..

    [2998번] 8진수

    백준 2998번: 8진수 2998번: 8진수 문제 창영이는 여러 가지 진법을 공부하고 있다. 창영이는 어제 2진법을 배웠고, 오늘은 8진법을 배웠다. 이제, 2진법 수를 8진법 수로 변환하려고 한다. 창영이가 사용한 방법은 다음과 같다. 2진수의 길이가 3으로 나누어 떨어질 때 까지 수의 앞에 0을 붙인다. 그 다음, 3자리씩 그룹을 나눈다. 아래의 표를 참고해 8진수로 바꾼다. 2진수가 주어졌을 때, 창영이가 사용한 방법을 이용해 8진수로 바꾸는 프로그램을 작성하시오. 000 0 001 1 010 www.acmicpc.net 주어진 조건대로 이진수 문자열을 받은 뒤, 이를 8진수로 변환하여 출력해주면 되는 문제이다. 물론 문자열로 받지 않고 숫자로 받은 뒤 한 자리씩 끊어 풀 수도 있다. [소스 보기]

    [10990번] 별 찍기 - 15

    백준 10990번: 별 찍기 - 15 10990번: 별 찍기 - 15 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 프로그래밍을 시작하고 처음 접하는 문제 중 하나인 별 찍기 문제입니다. 이 문제는 별들이 트리처럼 생겼군요. 예를 들어 $n$이 3이라면, * * * * * [소스 보기]

    [17010번] Time to Decompress

    백준 17010번: Time to Decompress 17010번: Time to Decompress The output should be L lines long. Each line should contain the decoding of the corresponding line of the input. Specifically, if line i+1 of the input contained N x, then line i of the output should contain just the character x printed N times. www.acmicpc.net 쉬운 문제입니다. 그냥 반복 출력하면 끝인 문제군요. [소스 보기]

    [1002번] 터렛

    백준 1002번: 터렛 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 백준 홈페이지가 만들어지고 거의 처음에 나온 문제입니다. 정답률은 약 18%로 그리 높지 않군요. 제 생각에는 조건 처리의 miss나 데이터형의 문제 때문일 가능성이 높다고 생각됩니다. 고등학교 교육과정에서 배우는 두 원 사이의 위치 관계에 대해 다루고 있습니다. 즉 간단히 말해서 두 원이 만나는 교점의 개수를 세는 문제입니다. 두 원의 각각의 반지름과 두 원의 중심 사이의 거리를 구해서 그 관계를 따지면 됩니다. (혹시 잊으셨을 분들을 위해 [여기]를 참고해주세요!) 제가 바로 맞춰서 추측..

    [1021번] 회전하는 큐

    백준 1021번: 회전하는 큐 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 순서대로 주어진다. 위치는 1보다 크거나 같고, N보다 작거나 같은 자연수이다. www.acmicpc.net 큐(Queue)는 다들 아시죠? 큐의 특징은 FIFO(First In First Out)입니다. 그렇기 때문에 pop하면 무조건 맨 앞 원소가 나오게 되고, push하면 무조건 맨 뒤에 원소가 들어가게 되죠. 하지만 이번에는 이 큐의 오퍼레이션을 추가한 자료구조가 있습니다. Queue Member Functions: push(value), pop()..

    [2164번] 카드2

    백준 2164번: 카드2 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리 www.acmicpc.net 유명한 자료구조 중 하나인 큐(Queue)를 이용해서 푸는 문제입니다. 단순히 제시해준 규칙을 잘 구현하기만 하면 풀 수 있는 문제입니다. [소스 보기]