알고리즘 6

[Python3] 백준 1149 - RGB거리

1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 설명 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집..

알고리즘 2022.03.03

[Python3] 백준 2877 - 4와 7

2877번: 4와 7 창영이는 4와 7로 이루어진 수를 좋아한다. 창영이가 좋아하는 수 중에 K번째 작은 수를 구해 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 설명 문제 창영이는 4와 7로 이루어진 수를 좋아한다. 창영이가 좋아하는 수 중에 K번째 작은 수를 구해 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 K(1 ≤ K ≤ 109)가 주어진다. 출력 첫째 줄에 창영이가 좋아하는 숫자 중 K번째 작은 수를 출력한다. 알고리즘 분류 수학 구현 풀이 방법 출력되는 숫자를 차례대로 살펴보면 첫번째 숫자는 4, 두번째는 7, 세번째는 44, 네번째는 47, 5번째는 74, 6번째는 77, … 이진수와 비슷한 느낌을 받을 수 있다. N 길이 출력 이진수 십진수 1 $$ N\le2^1 $..

알고리즘 2022.03.02

[Python / Java] 백준 10757 - 큰 수 A+B

10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 설명 정수 A, B(0 < A,B < 10^10000)를 입력 받아 A+B의 값을 출력한다 알고리즘 분류 수학 구현 사칙연산 임의 정밀도 / 큰 수 연산 풀이 방법 파이썬의 경우, 오버플로우가 발생하지 않으므로 정수의 크기가 10^10000가 되어도 연산이 가능하다. 다만, C, C++, Java 등의 언어의 경우 이러한 큰 수의 경우 연산이 불가하므로 적절히 나누어 계산해야 한다. 재귀함수를 사용하여 풀이하고자 가장 익숙한 파이썬으로 먼저 구현해보려 하였으나 이 과정으로는 반례가 발생하여 올바른 정답을 찾지 못했고, 자바에서 charAt() 메소드를 사용하여 풀이하..

알고리즘 2022.02.19

[Java] 백준 1181 - 단어 정렬

문제 설명 단어를 입력 받고 입력 받은 단어를 크기 순으로, 단어 순으로 출력한다. 입력 첫째 줄: 단어 개수 N 둘째 줄~: 단어 출력 단어를 크기 순(1순위), 단어 순(2순위)로, 같은 단어가 여러 개인 단어는 한 번만 출력 알고리즘 분류 문자열 정렬 풀이 방법 입력 받는 단어를 배열에 저장하고 배열을 sort한 뒤, 단어 길이를 1에서부터 최대 단어 길이까지 늘려가며 같은 단어 길이를 가지는 배열 요소를 출력한다. JAVA import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(n..

알고리즘 2022.02.19

[Java] 백준 2941 - 크로아티아 알파벳

2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 설명 문자열을 입력받아 크로아티아 알파벳과 일반 알파벳의 개수를 출력한다. 입력 알파벳, ‘-’, ‘=’ 으로 구성된 문자열 출력 크로아티아 알파벳+일반 알파벳 개수 알고리즘 분류 구현 문자열 풀이 방법 문자열에서 크로아티아 알파벳에 해당하는 문자열의 개수와 문자열에서 크로아티아 알파벳을 제외한 다른 알파벳의 개수를 출력한다. JAVA 시간(ms) 입력 메소드 출력 메소드 풀이 방법 시간(ms) 입력 메소드 출력 메소드..

알고리즘 2022.02.11