[백준 2607][C++] 비슷한 단어
·
코딩 공부/백준(C++)
문제 링크 https://www.acmicpc.net/problem/2607 ◆문제 해결 및 설명◆ 문제 : 같은 문자로 같은 개수로 이루어져 있다면 "같은 구성을 갖는다" 라고 하고 이 상태거나, 이 상태에서 하나 더 문자가 있거나, 하나만 다르거나, 하나가 적을 때의 개수를 첫번째 문자열과 비교하여 몇개의 문자열이 그러한지 답하라. 처음에는 이중 반복문을 통해서 문자열의 문자 하나하나를 비교해서 같다면 sameCount 변수에 +1을 해주었다. 이후 아래의 상황에 맞게 answer++를 해주었다. 첫번째 문자열의 size()와 sameCount가 같고, 비교 문자열의 size() 와 sameCount가 같다면 (같은 구성) 첫번째 문자열의 size() 와 sameCount가 같고, 비교 문자열의 si..
[백준 15686][C++] 치킨 배달
·
코딩 공부/백준(C++)
문제 링크 https://www.acmicpc.net/problem/15686 ◆문제 해결 및 설명◆ 문제 : N개의 치킨집만 남기고 폐업 시에, 각각의 치킨집과 집의 거리의 합들을 최소화하는 상황의 거리의 합을 구하여라. 우선 알고리즘적으로 생각나는것은 없었고, 조합을 통한 거리 계산이라는 문제임을 깨달았다. 문제는 C++로 조합을 만들 줄 모른다는것... 그래서 다른 분의 포스팅을 참고 하였다. https://ansohxxn.github.io/algorithm/combination/ (C++) 조합(Combination) 구현하기 조합이란 ansohxxn.github.io (좋은 블로그라 이후에도 많이 배워야 겠다.) Pair를 통해 치킨 집과 집의 좌표를 저장해주고 반복문을 통해서 각각 모든 집과 ..
[백준 9658][C++] 돌 게임 4
·
코딩 공부/백준(C++)
문제 링크 https://www.acmicpc.net/problem/9658 ◆문제 해결 및 설명◆ 문제 : 턴을 번갈아가며 돌을 1 or 3 or 4개를 뺄 수 있고, 받은 돌의 갯수가 1이면 질 때, 최선의 플레이를 하였을 경우 이기는 사람을 구하여라 일단 나열을 해보았다. (먼저 받은 아이가 상근) 상근 패 상근 승(1,1) 상근 패(1,1,1) 상근 승(3,1) 상근 승(4,1) 상근 승(3,1,1,1) 상근 승(4,1,1,1) 상근 ?(7,6,? // 7,4,? // 7,3,?) = 창영 승 7전까지는 3을 받는것이 아니라면 상근이가 무조건 이긴다. (최선의 플레이 상황 가로에 나열) 하지만 8부터는 애매 모호해지는데 다음 턴인 창영이가 플레이하기 때문에 6, 4, 3을 받으면 창영이가 이기게 ..
[백준 16974][C++] 레벨 햄버거
·
코딩 공부/백준(C++)
문제 링크 https://www.acmicpc.net/problem/16974 ◆문제 해결 및 설명◆ 알고리즘 분류 : 다이나믹 프로그래밍, 분할 정복, 재귀 간단하게 문제를 풀이하자면 N 레벨 햄버거 내부는 {Bun (N-1레벨 햄버거) Petty (N-1레벨 햄버거) Bun} 로 이루어져 있을 때, 뒤에서 M장을 먹었을 때 패티의 갯수를 구하는 문제이다. N 레벨의 버거의 길이 공식은 N : (N-1) *2 + 3 이므로 대략 2의50승을 넘어갈 것이므로 이를 직접 뒤에서 지우며 실행할 수 는 없고, 동적 프로그래밍의 힘을 써야 한다. 아래는 4레벨 까지의 버거 내용이다. (레벨1의 버거는 띄어쓰기를 하지 않았다.)(P 와 B는 추가된 번과 패티이다. 0 : P 1 : BPPPB 2 : B BPPPB..