C 55

[C언어] 백준 1080 : 행렬

백준 1080 : 행렬 문제 링크 www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 문제 내용 0과 1로만 이루어진 행렬 A와 행렬 B가 있다. 이때, 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하는 프로그램을 작성하시오. 행렬을 변환하는 연산은 어떤 3*3 크기의 부분 행렬에 있는 모든 원소를 뒤집는 것이다. (0 -> 1, 1 -> 0) Idea 행렬 A를 행렬 B로 바꾸는데 필요한 최소 연산 횟수를 구하는 문제이다. 이때, 연산이란 3*3 크기의 부..

백준 Baekjoon 2021.02.21

[C언어] 백준 11403 : 경로 찾기

백준 11403 : 경로 찾기 문제 링크 www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 내용 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. Idea 플로이드 알고리즘은 정점 간의 최단 경로(가중치)를 구하는 알고리즘이지만 이런 경로의 유무를 따지는 문제에도 적용하면 금세 풀 수 있다. 플로이드 알고리즘에 대해 간단히 설명하자면, 다이나믹 프로그래밍과 비슷하다. 우선 이 알고리즘의 포인트는 간선..

백준 Baekjoon 2021.02.19

[C언어] 백준 2475 : 검증수

백준 2475 : 검증수 문제 링크 www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 문제 내용 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 042..

백준 Baekjoon 2021.02.18

[C++] 백준 2217 : 로프

백준 2217 : 로프 문제 링크 www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 내용 N(1 ≤ N ≤ 100,000) 개의 로프가 있다. 이 로프를 이용하여 이런저런 물체를 들어 올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어 올릴 때, 각각의 ..

백준 Baekjoon 2021.02.14

[C언어] 백준 2579 : 계단 오르기

백준 2579 : 계단 오르기 문제 링크 www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 내용 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르..

백준 Baekjoon 2021.02.10

[C언어] 백준 3040 : 백설 공주와 일곱 난쟁이

백준 3040 : 백설 공주와 일곱 난쟁이 문제 링크 www.acmicpc.net/problem/3040 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 문제 내용 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱 개, 접시 일곱 개, 나이프 일곱 개를 준비한다. 어느 날 광산에서 아홉 난쟁이가 돌아왔다. (왜 그리고 어떻게 아홉 난쟁이가 돌아왔는지는 아무도 모른다) 아홉 난쟁이는 각각 자신이 백설공주의 일..

백준 Baekjoon 2021.02.03

[C언어] 문자열을 숫자로, 숫자를 문자열로

문자열을 숫자로, 숫자를 문자열로 : 아래 사용할 함수들에 대해 #include 를 사용한다. 문자열 → 숫자 atoi 정수형 : int atoi(char *string); //string : 정수로 이뤄진 문자열 atof 실수형 : double atof(char *string); //string : 실수로 이뤄진 문자열 예제(C언어) 1 2 3 4 5 6 7 8 9 10 11 12 #include #include int main() { int i = atoi("1234"); printf(" atoi(\"1234\") = %d\n", i); double d = atof("1.234"); printf("\n atof(\"1.234\") = %lf\n", d); return 0; } Colored by Co..

[C언어] 백준 1012 : 유기농 배추

백준 1012 : 유기농 배추 문제 링크 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 내용 (요약) 고르지 못한 배추밭에 해충 방지에 효과적인 배추흰지렁이를 구입하고자 한다. 이 지렁이는 배추 근처에 서식하며 해충을 잡아먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다.(상하좌우에 배추가 위치한 경우 인접해있다고 간주한다.) 이때..

백준 Baekjoon 2021.01.19

[C++] 백준 2293 : 동전 1

백준 2293 : 동전 1 문제 링크 www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 내용 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. Idea 다이나믹 프로그래밍을 하여 코드를 구현한다. f(n) += f(n-coin) 임을 이..

백준 Baekjoon 2020.12.22

[정렬] 버블 정렬 Bubble Sort

버블 정렬 Bubble Sort 버블 정렬이란? 버블 정렬은 배열의 인접 요소(adjacent element)를 비교하여 교환하는 모양이 마치 거품이 움직이는 모양이라고 해서 붙여진 이름이다. 인접한 두 개의 배열 요소를 비교 및 교환하여 최댓값을 제일 뒤로 보내는 전략이다. 구현은 간단하나 그에 비해 속도는 느린 편이다. 정렬 예시 Code / C언어 기반 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include #include #include #define SIZE 10 int arr[SIZE]; //Print Array void..

알고리즘/정렬 2020.12.21