맥북 언어 설정 변경 방법

아마도 개발자들은 OS를 영어로 사용하는 것이 편리할 것이다.

좌측 상단 사과 -> 시스템 환경설정 -> 언어 및 지역 메뉴를 클릭하면

아래 이미지와 같은 창이 뜨고

Preferred languages: 부분에서 변경하고자 하는 언어를 최상위로 위치키면 된다.


더 놀껄 그랬다

며칠전 대학원때 연구실 사람들을 만나서 저녁을 먹었다.

자연스럽게 예전 대학원 시절의 이야기들을 많이 하게 되었는데

형님 한분이 '더 놀껄 그랬다'라는 말을 했다.

나도 항상 그런 생각이었는데 형님도 똑같은 생각을 하고 있었던 것이다.

더 놀껄

여행도 많이 다니고

농구도 더 많이 하고

책도 많이 보고

친구들도 더 많이 만나고......

그렇게 더 놀껄

젊을 때 할 수 있는 일들 더 많이 해볼껄

추억을 더 많이 만들어 놓을껄...

아쉬운 생각이 많이 든다.

지금 회사원일 때는 대학원생 때가 그립고

대학원생 때는 대학생 때가 그립고

대학생 때는 고딩 때가 그립고...

결국 지금 이순간도 조금 지나면 그리운 시절이 될텐데

더 잘 살아야겠다.

더 멋지게 

더 재밌게 

더 의미있게

이 귀중한 삶 낭비하지 말고

더 잘 살아야겠다.

알고리즘 다이나믹프로그래밍 동전 문제 2

흔히 DP라고 하는 다이나믹프로그래밍 문제중에

가장 기본적인 문제가 동전 문제이다.

만들어야 할 금액과 동전의 종류가 주어졌을 때  

동전들을 최소의 개수로 조합해서 금액을 만들면 되는 문제이다.


예를들어 만들어야 하는 금액이 15원이고

주어진 동전의 종류가 1원, 5원, 12원이면(동전은 여러번 사용해도 된다.)

15원을 만들 수 있는 동전의 최소의 개수는 3이다. (5원+5원+5원)

이 문제를 푸는 핵심은 다음과 같다.

1. 다이나믹 테이블 D[]를 필요한 동전의 개수를 저장하는 배열로 선언
    예) D[15] = 15원을 만드는 데 필요한 동전의 개수

2. 다이나믹 테이블 D[]는
    만들어야 할 금액에서 추가할 동전의 금액을 뺐을 때
    예를 들어 15원-5원은 10원이므로
    10원을 만드는 데 필요한 동전의 개수에 한개를 더한 값
    15원을 만드는 데 필요한 동전의 개수를 비교하여 
    최소값을 택하는 방식으로 다이나믹 테이블을 만들어간다.

   다이나믹 테이블이 만들어지는 방식을 간단히 정리해 보면 다음과 같다.
   D[5], D[5-1]+1
   D[5], D[5-5]+1 ==> D[5]는 초기에 MAX값으로 설정되어 있으므로 D[5-5]+1=D[0]+1=0+1=1이 최소값

   D[10], D[10-1]+1
   D[10], D[10-5]+1 ==> D[10-5]+1=D[5]+1=1+1=2
   D[10], D[10-12]+1


위의 내용을 코드로 작성해 보면 다음과 같다.

알고리즘 다이나믹프로그래밍 동전 문제 1

다이나믹프로그래밍을 공부하기 좋은 기본적인 문제가 동전 문제이다.

지난번 포스팅에는 목표 금액을 만들기 위한 최소의 동전의 개수를 구하는 방법에 대해 정리해보았다.

이번 포스팅에서는 목표 금액을 만들 수 있는 모든 경우의 수를 구하는 방법에 대해서 정리해보려고 한다.

다이나믹프로그래밍은 다이나믹테이블을 만들면 쉽게 점화식을 유도해낼 수가 있다.
이번 문제의 다이나믹테이블은 다음과 같다.


0
1
2
3
4
5
6
7
8
9
10
<- 목표 금액
1
1
1
1
1
1
1
1
1
1
1
1
<- 1원으로 목표 금액을 만들 수 있는 경우의 수
1,2
1
1
2
2
3
3
4
4
5
5
6
<- 1원, 2원으로 목표 금액을 만들 수 있는 경우의 수
1,2,5
1
1
2
2
3
4
5
6
7
8
10
<- 1원, 2원, 5원으로 목표 금액을 만들 수 있는 경우의 수