#INFO 난이도 : SILVER3 알고리즘 유형 : 다이나믹 프로그래밍 (DP) ∞ 문제 출처 : https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net #SOLVE 특정한 수 N을 1, 2, 3 을 이용해 만드는 방법은 다음과 같다. [1] N - 1 + 1 (N-1을 1, 2, 3을 이용해 만들고 1을 더한다.) [2] N - 2 + 2 (N-2를 1, 2, 3을 이용해 만들고 2를 더한다.) [3] N - 3 + 3 (N-3을 1, 2, 3을 이용해 만들고 3을 더한다.) 위의 3가지 케이스를 모두 더하면 특정 수 N을 만드는 모든 방법을 구..
#INFO 난이도 : SIVER3 알고리즘 유형 : 다이나믹 프로그래밍 (DP) ∞ 출처 : https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net #SOLVE 간단한 DP문제이다. DP[N] = 2XN 크기의 직사각형을 채우는 방법의 수라고 가정하고, DP[1] DP[2]를 각각 1 , 2로 초기화 시켜준다. 다음으로 DP[3]을 만드는 방법의 수를 생각해 보자. DP[1] 에서 2X1 타일 2개를 추가하는 케이스와 DP[2] 에서 1X2 타일 1개를 추가하는 케이스로 ..
#INFO 난이도 : SILVER3 알고리즘 유형 : 다이나믹 알고리즘 (Dynamic) ∞ 문제 출처 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net #SOLVE 처음엔 단순하게 , 1 -> 2 -> 3 번 방식을 차례로 적용하는 매 상황 마다 최선의 풀이를 적용시키는 그리디적 사고로 접근하면 되지 않을까? 라고 생각했으나 그리디 알고리즘으로는 문제를 해결할 수 없었다. 그 이유는 10과 같은 예외적 상황이 존재하기 때문이다. 10을 그리디 풀이로 적용시키면 10 -> 5 -> 4 -> 2 -> 1 총 4번이 걸리는데, 10 -> 9 -> 3 -> 1 ..
# 인덱서 (Indexer) * 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 수정할 내용이 있다면 지속적으로 수정해 나갈 예정입니다. # 인덱서 (Indexer) 인덱서(Indexer)는 인덱스(Index)를 이용해 객체 내부에 존재하는 데이터에 접근하도록 도와주며, 객체를 마치 배열처럼 사용할 수 있도록 해준다. 객체 내부의 데이터에 접근할 수 있는 통로 역할을 한다는 점에서 프로퍼티(Property)와 매우 유사한데, 프로퍼티와 다른 점은 "인덱스(Index)"를 이용한다는 것이다. 인덱스의 선언 형식은 다음과 같다. class 클래스이름 { 한정자 인덱서형식 this[형식 index] { get { /* index를 이용해 내부 데이터 반환 */ } se..
* 다음 포스팅은 깃(Git)의 사용방법에 대하여 정리한 것으로, 개인적인 공부 기록용으로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * Window 운영체제를 기준으로 작성했습니다. [목차] #1 깃 (Git) #2 깃 설치 (Git Download) #3 깃 환경 설정 [Goal] 1. 깃의 특성과 설치 방법에 대한 내용 숙지 2. 깃 환경 설정 방법 숙지 #1 깃 (Git) 아마 컴공이라면 혹은 개발자라면 주변에서 깃(Git) 혹은 깃허브(GitHub)를 필수로 배워야 한다는 말을 종종 들었을 것이다. 그렇다면 깃이란 무엇이고 어떠한 장점이 있길래 그렇게 다들 강조를 하는 것일까? 깃은 리눅스의 창시자인 리누스 토르발스(Linus Torvalds)가 개발한 소스 코드 관리 시스템이..