마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

BOJ 문제 풀이 42

BOJ 11282번(한글) 문제 풀이

★ solved.ac 난이도 : B4 (작성 시점 기준) [문제 본문 링크] 11282번: 한글 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있 www.acmicpc.net N번째 한글을 출력하는 문제로, UTF-8 인코딩을 이해하셔야 합니다. 한글의 UTF-8 코드를 자세히 살펴보면 규칙을 찾을 수 있습니다. (한글의 UTF-8 코드는 3Byte입니다.) 규칙 1. 첫 번째 글자인 '가'의 UTF-8 코드는 0xEA, 0xB0, 0x80 (234, 176, 128)입니다. 규칙 2. 마지막 글자인 '힣'의 UTF-8 코드는 0..

BOJ 5230번(Prefix Codes) 문제 풀이

★ solved.ac 난이도 : S4 (작성 시점 기준) [문제 본문 링크] 5230번: Prefix Codes The first line in the test data file contains the number of test cases (< 100). After that, each line contains one test case. The test case begins with k, the number of strings to be decoded, the string representation of the prefix code, followed by the k www.acmicpc.net 이 문제는 이진 트리에 저장된 문자열 데이터를 바탕으로 2진수로 된 코드의 디코딩을 구현하는 문제입니다. (허프만..

BOJ 2166번(다각형의 면적) 문제 풀이

★ solved.ac 난이도 : G5 (작성 시점 기준) [문제 본문 링크] 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 이 문제를 풀기 위해서는 신발끈 공식을 이해하셔야 합니다. 다각형의 각 모서리마다 임의의 선분과 원점을 꼭짓점으로 하는 삼각형의 넓이를 계산하는 방법을 응용한 공식이라고 합니다. (참고 : Wikipedia) [소스 코드 (C++98)] 공유 소스 보기 www.acmicpc.net ★ 틀린 점이 있다면 알려주세요~!

BOJ 12852번(1로 만들기 2) 문제 풀이

★ solved.ac 난이도 : S1 (작성 시점 기준) [문제 본문 링크] 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 이 문제는 일반적인 동적 계획법(DP) 문제이며, BOJ #1463 (1로 만들기) 문제에서 역추적을 추가한 문제입니다. 먼저 크기가 100만 이상인 충분한 정수 배열 2개를 만듭니다. (배열의 이름은 dp로 설정하며, 정답 계산용[0]과 역추적용[1]으로 구분합니다.) 입력이 1이면 연산이 필요하지 않으므로 정답은 0입니다. (dp[1][0] = dp[1][1] = 0) 2 이상의 입력에 대해서는 문제의 조건에 따라 3가지로 생각할 수 있습니다. 경우 1. x가 3으로 나누어 떨어지면서 dp..

BOJ 2407번(조합) 문제 풀이

★ solved.ac 난이도 : S3 (작성 시점 기준) [문제 본문 링크] 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 이 문제는 일반적인 조합의 수를 구하는 문제이나, 큰 수 연산이 필요하므로 Python을 사용하였습니다. nCm = n!/(n-m)!/m! = n*(n-1)*(n-2)*...*(n-m+1)/m! (n부터 내림차순으로 m개를 곱한 값에서 m!을 나눠주면 됩니다. 공유 코드에는 하나의 반복문으로 처리하였습니다.) [BOJ에서 코드 보기] 공유 소스 보기 www.acmicpc.net ★ 틀린 점이 있다면 알려주세요~!