안녕하세요. 오늘은 백준 1310번: 그룹 단어 체커(링크) 문제를 풀어보려고 합니다. 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 ..
안녕하세요. 오늘은 백준 1065번: 한수(링크) 문제를 풀어보려고 합니다. 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예제 입력 110 1 210 1000 500 예제 출력 99 1 105 144 119 제한 시간 제한: 2초 메모리 제한: 128MB 풀이 문제에서 숫자의 각 자릿수가 등차수열을 이루면 한수라고 정의를 해주었습니다. 따라서 숫자의 자..
안녕하세요. 오늘은 백준 4673번: 셀프넘버(링크) 문제를 풀어보려고 합니다. 문제 셀프 넘버는 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이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 11..
안녕하세요. 오늘은 백준 1110번: 더하기 사이클(링크) 문제를 풀어보려고 합니다. 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다..
안녕하세요 저번에는 C언어의 반복문에 대해서 배워 보았습니다. 오늘 알아볼 내용은 배열입니다. 1. 배열이란? 일반 변수는 상자 하나를 만드는 것이라면 배열은 만들면 여러 개의 상자가 같이 묶여있는 것으로 생각하면 편합니다. 배열은 [ ]기호를 써서 int a[5]; 와 같이 선언합니다. [ ] 안에는 배열의 크기를 지정해주면 됩니다. 2. 배열 초기화 및 참조 배열 초기화는 { }기호를 써서 초기화를 합니다. 배열안의 있는 각각의 내용들은 원소라고 불립니다. 이 때 []기호 안의 숫자를 인덱스라고 말합니다. int a[5]; int a[5] = {1, 2, 3, 4, 5}; 배열의 첫 번째 원소는 1이 아니라 0으로 시작합니다. 이 내용은 처음에 많이 헷갈리고 틀리시는 부분이라 꼭 숙지하고 가셔야 합니..
안녕하세요 저번에는 C언어의 조건문에 대해서 배웠습니다. 이번 글은 기본적인 C언어의 반복문에 관해서 알아보도록 하겠습니다! C언어에서 반복문은 for, while, do while을 사용하여 나타냅니다. 1. for for문의 경우 일정 횟수를 반복하려고 할 때 주로 사용됩니다. for문의 구조는 다음과 같습니다. for(초기화; 조건; 실행){ 명령; } 초기화 부분은, for문에서 임시로 사용할 변수를 선언 및 초기화 하는 것으로 처음 한번만 실행됩니다. 이 때 선언된 변수는 for문 밖에서는 사용할 수 없으며 for문이 끝난 후 사라집니다. 조건 부분은 말 그대로 조건을 정하여 for문을 계속 실행할지 말지를 결정합니다. 실행 부분은, for문이 한 번 끝날때 마다 주어진 실행코드를 수행합니다. ..