BOJ
-
18111: 마인크래프트BOJ 2023. 10. 14. 23:28
접근 : 처음부터 접근을 완전 잘못했다. 배열의 값을 직접 바꾸면서 진행하려고 했었는데 지금생각해보니 그러면 정말 매우 복잡해지는 길이라는 생각이 든다. 블로그의 도움이라면 절대로 풀 지 못했을 것이다... 블로그에서는 백준 카테고리와 같은 브루트포스 알고리즘을 통해서 설명해주었다. 높이를 브루트포스하여 푼다. 높이 0부터 256까지 검사하면서 어떤 높이 값이 적당할지 체크하는 것이다. 중간 중간에 있는 조건문들도 초견에 풀기 정말로 힘들 것 같다. 풀이 : 높이를 높여가며 먼저 쌓아야 할 블록과 제거해야 할 블록의 개수를 센다. 왜 이렇게 하나면 가장 기본적으로 인벤토리에 있는 블록 개수와 쌓아야하는 블록의 개수에 오류가 생기면 바로 패스해야하기 때문이고 또 시간을 계산할 때에도 꼭 필요하기 때문이다...
-
2941 크로아티아 알파벳BOJ 2023. 5. 6. 22:42
문제요약 : 여러 개의 문자를 합한 문자열이 새로운 문자(크로아티아 알파벳)가 된다고 생각하면 된다. 따라서 문자열에 문자를 입력받고 특정 문자열의 개수를 세는 문제이다. 체크포인트 : 위 목록에 없는 알파벳은 한 글자씩 센다. 풀이 : 배열에 문자열을 입력받고 배열의 원소들을 확인하여 크로아티아 알파벳을 변경해서 입력한 것인지 아닌지를 일일이 확인한다. 팁 : 단순히 if문 여러 개와 &&연산자로 구현해도 되지만 (코드 1) 크로아티아 알파벳이 6개이고 첫 문자가 겹치는게 몇 가지 있기 때문에 케이스를 조금 좁혀서 나눠도 괜찮을 것 같다. (코드 2) 코드 1 #include using namespace std; int main() { char words[101]; int i = 0; int cnt =..