U E D R , A S I H C RSS

새싹교실/2017/따라와반/과제방 (rev. 1.9)

새싹교실/2017/따라와반/과제방

1. 자바

1.1.1. 이민욱

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here
        long[] FIBO = new long[100];

        int i;
        for(i=0;i<100;i++){
            FIBO[i]=-1;
        }
        FIBO[0]=0;
        FIBO[1]=1;
        Scanner input = new Scanner(System.in);
        int N = input.nextInt();
        for(i=2;i<=N;i++){
            if(FIBO[i]==-1){
                FIBO[i]=FIBO[i-2]+FIBO[i-1];
            }
        }
        System.out.printf("%d",FIBO[N]);
    }
}

1.1.2. 정석우

import java.util.Scanner;

public class Hello 
{
	public static void main(String[] args)
	{
		long arr[] = new long [100];
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		arr[0] = 0;
		arr[1] = 1;
		for(int i=2; i<=n; i++)
		{
			arr[i] = arr[i-2] + arr[i-1];
		}
		System.out.println(arr[n]);
	}
}


2. 자료구조

2.1.1. 신원준

2.1.1.1. 별찍기 - 7

(여기에 코드를)

2.1.1.2. 행렬 곱셈

(여기에 코드를)

2.1.1.3. 공약수

(여기에 코드를)

2.1.1.4. 비슷한 단어

(여기에 코드를)

2.1.2. 이민욱

2.1.2.1. 별찍기 - 7

(여기에 코드를)

2.1.2.2. 행렬 곱셈

(여기에 코드를)

2.1.2.3. 공약수

(여기에 코드를)

2.1.2.4. 비슷한 단어

(여기에 코드를)

2.1.3. 정석우

2.1.3.1. 별찍기 - 7

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int n, i, j, k;
	scanf(" %d", &n);
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n - i - 1; j++)
		{
			printf(" ");
		}
		for (k = 0; k < 2*i+1; k++)
		{
			printf("*");
		}
		printf("\n");
	}
	for (i = n-1; i >0; i--)
	{
		for (j = 0; j < n-i; j++)
		{
			printf(" ");
		}
		for (k = 2*i-1 ; k > 0; k--)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

2.1.3.2. 행렬 곱셈

(여기에 코드를)

2.1.3.3. 공약수

#include <stdio.h>

long long euclidGCD(long long a, long long b)
{
	if (a >= b) 
	{ 
		if (a % b == 0) 
			return b; 
		else 
			return euclidGCD(b, a%b); 
	} 
	else 
	{ 
		if (b % a == 0) 
			return a; 
		else 
			return euclidGCD(a, b%a);
	} 
}//유클리드 호제법, 최대 공약수 구하기

int main()
{
	long long k, x, y, GCD, LCM;
	long long t, i, j;
	scanf("%lld %lld", &GCD, &LCM);

	if (GCD == LCM) 
	{
		printf("%lld %lld", GCD, LCM);
		return 0;
	}

	t = GCD*LCM; // = GCD^2 * a * b

	for (i = GCD; i<LCM; i += GCD) 
	{
		j = t / i; //i는 GCD의 배수, j는 i<j될 때까지 마찬가지로 GCD의 배수(GCD * a * b /상수)
		if (i > j)
		{
			break;
		}
		k = euclidGCD(i, j);
		//k는 i, j의 최대공약수임을 확인하는 용도

		if (k == GCD && i*j / k == LCM) //다시 값이 맞는지 체크
		{
			x = i;
			y = j;
		}
	}
	printf("%lld %lld", x, y);
	return 0;
}

2.1.3.4. 비슷한 단어

#include <stdio.h> 
#include <string.h>

char str[100][10]; //문자열 길이 10, 최대 갯수 100개 배열
int str_cnt[100][26] = { 0, }; //각 알파벳에 대한 갯수를 저장하는 정수형 배열

int chk_composite_char(char* str, char target)
{
	int length = strlen(str);
	int i, cnt = 0;
	for (i = 0; i < length; i++)
	{
		if (str[i] == target)
		{
			cnt++;
		}
	}
	return cnt;
}//문자열에 해당 문자가 몇개인지를 리턴해주는 함수

int main() 
{
	int num_str, i, j, arr_str_cnt, answer_cnt = 0, error_cnt; //num_str은 문자열 갯수
	int buf_pivot_address[2], buf_target_address[2]; //error_cnt에 해당하는 두 배열 주소가 같은지 확인하기 위한 배열
	scanf(" %d", &num_str);

	for (i = 0; i < num_str; i++)
	{
		scanf(" %s", &str[i]);
	}

	for (i = 0; i < num_str; i++)
	{
		for (j = 65; j <= 90; j++)
		{
			str_cnt[i][j-65] = chk_composite_char(str[i], (char)j);
		}
	}

	/*
	for (i = 0; i < 26; i++)
	{
		printf("%c ", (char)(i + 65));
	}

	printf("\n");

	for (i = 0; i < num_str; i++)
	{
		for (j = 0; j < 26; j++)
		{
			printf("%d ", str_cnt[i][j]);
		}
		printf("\n");
	}*/
	

	for (i = 1; i < num_str; i++)
	{
		arr_str_cnt = 0;
		error_cnt = 0;
		for (j = 0; j < 26; j++)
		{
			if (str_cnt[0][j] == str_cnt[i][j]) //같은 구성 가질떄
			{
				arr_str_cnt++;
			}
			if (-1 == (str_cnt[0][j] - str_cnt[i][j]) || (str_cnt[0][j] - str_cnt[i][j]) == 1) //알파벳 하나의 개수만 다를 떄
			{
				if (error_cnt == 0)
				{
					buf_pivot_address[0] = str_cnt[0][j];
					buf_target_address[0] = str_cnt[i][j];
				}
				else if (error_cnt == 1)
				{
					buf_pivot_address[1] = str_cnt[0][j];
					buf_target_address[1] = str_cnt[i][j];
				}
				error_cnt++;
			}
		}
		if (arr_str_cnt == 26) //같은 구성일 때
		{
			answer_cnt++;
		}
		if (error_cnt == 1 && arr_str_cnt == 25) //빼고, 더해서 가능할 때
		{
			answer_cnt++;
		}
		if ((error_cnt == 2 && arr_str_cnt == 24) && (buf_pivot_address[0] == buf_target_address[1] && buf_pivot_address[1] == buf_target_address[0])) //바꿔서 가능할 때
		{
			answer_cnt++;
		}
	}
	
	printf("%d", answer_cnt);

	return 0;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:07
Processing time 0.0344 sec