반응형 알고리즘38 [백준 / Python] 1003번 피보나치 함수 문제https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.www.acmicpc.net코드import sys input = sys.stdin.readline T = int(input()) data0 = [0] * 45 data1 = [0] * 45 data0[0] = 1 data1[0] = 0 data0[1] = 0 data1[1] = 1 for i in range(2, 42): data0[i] = data0[i - 1] + data0[i - 2] data1[i] = data1[i - 1] + data1[i - 2] for _ in range(T): n = int(input()).. 2023. 5. 5. [백준 / Python] 1780번 종이의 개수 문제 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 종이 9개로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 37, N은 3k 꼴)이 주어진다. 다음 N개의 줄에는 N개의 정수로 행렬이 주어진다 출력 첫째 줄에 -1로만 채워진 종이의 개수를, 둘째 줄에 0으로만 채.. 2023. 1. 15. [백준 / Python] 16953번 A → B 백준 16953 [ A → B ] 문제 python 풀이 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 예제 입력 출력 2 162 5 4 42 -1 1000 40021 5 from collections import deque A, B = map(int, input().split()) # A를 B로만들기 # 1. 2를곱하거나 # 2. 숫자 뒷 자리에 1을 추가 (숫자 * 10 + 1) qu.. 2023. 1. 11. [알고리즘] 알파벳 피라미드 만들기 (c언어 / 예제) 문제 설명 정수 1개를 입력 받습니다. 입력 받은 정수가 0 이라면 프로그램을 종료합니다. 입력 받은 정수가 1 ~ 26이라면 정수에 따른 알파벳 피라미드를 만들어줍니다. 입력 받은 정수가 그 이외의 수라면 다시 입력을 받도록합니다. 다음 예제의 규칙을 따르는 알고리즘을 만들어야합니다. 1를 입력했을 때 5를 입력했을 때 25를 입력했을 때 예제 코드 #include int main(void) { int i = 1; int in; int j = 1; while (1) { printf("1부터 26까지의 정수를 입력하시오(exit = 0): "); scanf_s("%d", &in); if (in == 0) { printf("Goodbye\n"); break; } if (!(0 2022. 2. 19. [c언어] 하노이탑 문제 (문제 설명, 예제) 하노이의 탑 하노이의 탑은 고대 인도로부터 시작한 일종의 퍼즐입니다. 목표는 아래의 조건을 지키며 한 축에 있는 원반들을 모두 다른 축으로 옮기는 것입니다. 조건 한번의 하나의 원판을 이동할 수 있다. 맨 위에 있는 원판만 이동이 가능하다. 크기가 작은 원판위에 크기가 큰 원판이 올라갈 수 없다. 두 개의 축만 있다면 퍼즐이 불가능하기 때문에 임시의 축을 사용합니다. 예제 다음 예제는 원반의 개수를 입력받고 하노이의 탑을 푸는 예제이다. A축에 원판이 있고 B축을 이용하여 최종적으로 C축으로 모두 옮기는 과정을 나타내는 예이다. 원판의 크기는 숫자를 통해 나타내었다. #include void hanoi(int n, char from, char tmp, char to); int main(void) { in.. 2021. 12. 23. [Java] 자바 삼각형 문제 예제 #1 [별 (*) 삼각형] 별 문자 (*)를 이용하여 삼각형을 만드는 예제입니다. 1이상의 정수를 입력받고, 입력받은 숫자 만큼에 삼각형을 생성합니다. ex. 3 * ** *** ex. 5 * ** *** **** ***** 소스코드 import java.util.Scanner; public class Triangle { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("삼각형의 크기"); int size = input.nextInt(); int i,j; for(i = 1; i 2021. 7. 12. [Java] 삽입정렬 코드 /insertion sort (자바 예제, 시간복잡도 ) 삽입 정렬 시간복잡도 Best Avg Worst n n^2 n^2 자바로 삽입정렬을 구현한 코드입니다. /** * 전제 조건: x[0 ~ i -1] 까지 정렬되어 있고 i는 x의 크기 보다 작다. * x[i]가 x[0 ~ i -1]사이 올바른 위치에 들어가게 해준다. * @param x 배열 * @param i 올바른 위치를 찾아줄 원소의 인덱스 */ public static void insert(int[] x, int i){ int temp, j =0; temp = x[i]; for(j = i-1; j>=0 && temp=0 && temp 2021. 5. 18. 알고리즘이란 / 알고리즘 뜻, 조건, 표현방법 알고리즘 알고리즘 정의 어떤 일을 해결하기 위한 방법이나 문제를 해결하기 위한 절차등을 단계적으로 나열한 것 * 효율적인 알고리즘은 보다 짧은 시간, 적은 자원으로 작업을 빠르고 정확하게 수행할 수 있다. 알고리즘의 조건 입력 필요한 자료를 외부로 부터 받아들인다. 경우에 따라, 자료가 외부로부터 입력되지 않고 내부에서 생성할 수도 있다. 출력 문제를 처리 했을때 적어도 하나 이상의 결과값이 나와야한다. 명확성 각 단계별로 무엇을 하는지 명확하게 표현되어야한다. 수행 가능성 알고리즘의 각 명령어는 논리적이어야한다. 유한성 실행하면 주어진 과정을 처리한 후 반드시 종료되어야 한다. 알고리즘의 표현 방법 1. 자연어 사람이 사용하는 국어나 영어와 같은 언어를 이용해 나타내는 방법 2. 순서도 주어진 문제를 .. 2021. 2. 5. 이전 1 2 3 4 다음 728x90 반응형