전체 글(157)
-
[九地(구지)편 9장] - 손자병법
施無法之賞 懸無政之令 犯三軍之衆 若使一人 시무법지상 현무정지령 범삼군지중 약사일인 법에도 없는 상을 베풀고, 군정에 없는 명령을 내걸고, 삼군의 병사들을 통제하기를 마치 한사람 만을 부리는 듯 해야 한다. 施: 베풀다 [시] 賞: 상주다 [상] 懸: 메달다, 걸다 [현] 犯: 범하다, 침노하다 [범] 犯之以事 勿告以言 犯之以利 勿告以害 범지이사 물고이언 범지이리 물고이해 일로써 통제하고, 말로써 알리리 않는다. 이익으로 움직이게 하고 해로움을 알리지 않는다. 投之亡地然後存 陷之死地然後生 夫衆陷於害 然後能爲勝敗 투지망지연후존 함지사지연후생 부중함어해 연후능위승패 망할 곳에 투입한 연후에 존재하게 되고, 죽을 곳에 빠뜨린 연후에 살아나게 된다. 무릇 군대를 해로운 함정에 빠뜨리고 난 연후에 승패를 결정지을 ..
2022.10.02 -
[九地(구지)편 8장] - 손자병법
夫霸王之兵 伐大國 則其衆不得聚 부패왕지병 벌대국 즉기중부득취 무릇 패왕의 군대(兵)는, 대국을 칠 때는, 적국이 군대를 모으지 못하도록 하고, 霸: 으뜸 [패] 伐: 치다, 베다 [벌] 威加於敵 則其交不得合 위가어적 즉기교부득합 적을 위협할 때는, 외교를 맺지 못하도록 한다. 聚: 모으다 [취] 威: 위엄 [위] 是故 不爭天下之交 不養天下之權 信己之私 威加於敵 시고 부쟁천하지교 불양천하지권 신기지사 위가어적 그러므로 천하의 외교를 놓고 다투지 않고, 천하의 권세를 키우려 하지않고, 자기를 믿고 적에게 위협을 가한다. 權: 권세 [권] 故其城可拔 其國可隳也 고기성가발 기국가휴야 그러므로 그 성을 칠 수 있고, 무너뜨리게 할 수도 있다. 拔: 빼다 [발] 隳: 무너지다 [휴]
2022.10.02 -
[九地(구지)편 7장] - 손자병법
九地之變 屈伸之利 人情之理 不可不察也 구지지변 굴신지리 인정지리 불가불찰야 아홉가지 지형의 변화를 알고, 굴하여 후퇴하거나 진형을 펼쳐 이익을 얻는 것과, 병사(人)들의 마음 속 이치를 살피지 않을 수 없다. 伸: 펴다 [신] 凡爲客之道 深則專 淺則散 범위객지도 심즉전 천즉산 적지(客)에 임하는 방법(道)은, 깊이 침입하면 싸움에 전념하고, 얕게 침입하면 흩어진다. 淺: 얕다 [천] 散: 흩다, 흩어지다 [산] 去國越境而師者 絶地也 거국월경이사자 절지야 국경을 넘어 군사를 이끄는 곳이 절지(絶地)이다. 越: 넘다 [월] 境: 지경 [경] 絶: 끊다 [절] 四達者 衢地也 入深者 重地也 入淺者 輕地也 사달자 구지야 입심자 중지야 입천자 경지야 사방으로 통한 곳은 구지(衢地)이다. 깊이 침입한 곳은 중지(重地..
2022.10.02 -
[백준] 2146 | 다리 만들기 | C++
풀이의 핵심은 이렇다. int mem[][]에 섬의 번호 작성 int vis[][]에 다른 섬까지의 거리 작성 set S[]로 출발섬의 끝 좌표 수집 1. DFS로 섬들의 번호를 매긴다, 끝 좌표들도 모아준다. DFS(좌표, 번호): mem[좌표]
2022.09.22 -
자전거를 샀다 | 2022-09-01
올해 9월 첫 날에 자전거를 샀다. 알톤자전거 용민점의 점주님은 30년간 자전거 회사에서 근무하시면서 톈진으로 영업출장도 하셨다고 한다. 나한테 자물쇠, 부착랜턴 등 서비스도 많이 해주셨다. 그러면서 자전거 소문 좀 내달라고 부탁하셨다. 참으로 감사했고, 친절과 겸손이 묻어났지만 정직함과 내공은 무겁게 느껴졌다. 세월의 무게랄까? 인생의 치열했음이 절로 느껴지던 분이었다. 앞으로 잘 타고 다니겠습니다. 사실 내가 염두했던 모델은 아니었다.(알톤 탑원) 이미 지난 주에 팔려나갔다고 하셨다. 자전거의 ㅈ도 모르는 나에게 비슷한 스펙임을 설명해주셨다. (프레임, 브레이크, 바퀴 등이 탑원이랑 거의 똑같았다.) 실제로 타보니 기분이 너무 좋았다. 좋은 자전거를 얻고, 좋은 분을 만난 것 같다. 내가 구입한 자전..
2022.09.04 -
[백준] 1463 | 1로 만들기 | C++
풀이의 핵심은 다이나믹 프로그래밍이다. 0. dp[i]의 값은 'i를 1로 만들기 위한 최소 연산 횟수'를 의미한다. 1. 2부터 n까지 i반복: dp[i]는 dp[i-1]에 1을 더한 값으로 초기화. 만약 i가 2의 배수라면: dp[i]=min(dp[i], dp[i/2]+1)로 초기화한다. 만약 i가 3의 배수라면: dp[i]=min(dp[i], dp[i/3]+1)로 초기화한다. 2. dp[n]을 출력한다. 0. dp를 벡터로 선언하면, OutofBounds에 안걸린다. 1. i가 6의 배수라면 2로도, 3으로도 나눠 떨어진다. 3으로 나누었을 때의 횟수가 더 적으므로 2부터 처리하도록 한다. 정답 소스코드 #include using namespace std; int n; int main() { ios..
2022.09.03