Network & Server Factory

개인 공부 기록

Club/EMOTION 3

[C] 입력받은 크기의 달팽이 배열 출력하기

N을 입력받아 1부터 N×N까지의 숫자를 바깥쪽에서 안쪽으로 시계 방향으로 채우는 달팽이 배열을 C로 구현했습니다. 한 바퀴마다 오른쪽, 아래, 왼쪽, 위 순서로 채우고 변의 길이를 2씩 줄입니다.1. 문제N(최대 25)을 입력받아 N×N 크기의 달팽이 배열을 출력합니다. 예를 들어 N이 4이면 다음과 같습니다. 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 72. 풀이 방법단계이동칸 수1오른쪽(x + 1)a2아래(y + 1)a - 13왼쪽(x - 1)a - 14위(y - 1)a - 2 한 바퀴를 돌면 바깥 테두리가 채워지므로 a를 2 줄여 안쪽 테두리를 같은 방식으로 채웁니다. 바퀴 수는 N / 2이고, N이 홀수이면 마지막에 가운데 한 칸을 채웁니다.3. 코드#in..

Club/EMOTION 2018.05.03

[C] 재귀 함수로 피보나치 수열 출력하기

입력받은 개수만큼 피보나치 수열을 재귀 함수로 출력했습니다. 코드는 간단하지만 같은 값을 반복 계산하므로 N이 커지면 급격히 느려집니다.1. 문제N을 입력받아 피보나치 수열의 1번째부터 N번째 항까지 출력합니다. 1, 2번째 항은 1이고, 이후 항은 앞의 두 항의 합입니다.입력: 10출력: 1 1 2 3 5 8 13 21 34 552. 코드#include int fibo(int i) { if (i == 1 || i == 2) return 1; // 1, 2번째 항은 1 return fibo(i - 2) + fibo(i - 1); // 앞의 두 항의 합}int main() { int a; scanf("%d", &a); ..

Club/EMOTION 2018.05.03

[C] 이중 반복문으로 별 찍기 4가지

높이 N을 입력받아 별(*)로 네 가지 삼각형을 출력했습니다. 바깥 반복문은 줄, 안쪽 반복문은 그 줄의 공백과 별 개수를 담당합니다.1. 패턴별 규칙i번째 줄(1 ≤ i ≤ N)에 찍는 공백과 별의 개수입니다.패턴공백별직각삼각형0i역삼각형0N - i + 1오른쪽 정렬 삼각형N - ii피라미드N - i2i - 1 처음 작성한 코드는 바깥 반복문을 0부터 N까지 돌려 첫 줄이 비거나(직각, 오른쪽 정렬, 피라미드) N + 1줄이 출력되는(역삼각형) 문제가 있어, 아래 코드는 1부터 N까지 돌도록 정리했습니다.2. 직각삼각형#include int main() { int n; scanf("%d", &n); for (int i = 1; i ******3. 역삼각형for (int i = 1; i ..

Club/EMOTION 2018.04.02
서울
--:--:--
-전체 글
-카테고리
오늘 방문