1) 생각 주어진 2개의 10만 자리의 bit를 가지고 bit연산 출력을 하여라. 처음 생각java에는 딱히 bit를 받을 만한게 없는것 같으므로(모르는것일 가능성이 높다.) 배열을 사용해서 String으로 받은 뒤 한자리 씩 배열에 넣어주었다. 다음 생각별 생각없이 ~A와 ~B를 비트 연산 ~ 처리를 해줬더니 - 값이 나왔다. 보수가 적용된 것이다. 2) 방안 1) - 값이 나오는 것을 방지하면서 원래 bit의 0과 1을 flip하기 위해서 1과의 ^(or) 연산을 사용하였다. or 연산은 01과 10일 경우 1 그외의 00 11은 0의 결과를 나타내므로 원본 bit를 뒤집은 효과를 낼 수 있다. 12345678910111213141516171819202122232425262728293031323334..
1) 생각 수열의 개수 N과 숫자 K가 주어진다. 수열에서 수를 합 하였을 때, K가 되는 경우의 수를 구하여라. 처음 생각DFS를 통해 수열에서 그 숫자를 포함하고 가는경우와 포함하고 가지 않는 경우로 나누어 탐색을 진행한다.▶재귀를 통해 구현하여 가지치기를 잘 해주어야 한다. ▶이 문제의 경우 숫자의 합이 k에 도달 했을 때, Index 변수가 N에 도달하였을 때, 마지막으로 숫자의 합이 k를 넘어 섰을 경우 return 해주었다. 2) 방안 1) 재귀를 통해 구현을 하였다.▶반복문의 경우 충분히 큰 숫자까지 돌 수 있지만 재귀의 경우에는 10만 번 정도 이상을 들어가게 되면 스택 오버플로우 에러가 나게된다. 따라서 재귀를 사용한 탐색의 경우 항상 가지치기를 잘해 주어야한다.▶이러한 문제는 재귀를 통..
1) 생각 N x M의 크기의 체스판을 만들 판이 주어진다 판들은 1x1의 크기로 W(흰색)과 B(검은색)으로만 이루어져있다.판에서 8 x 8을 떼어내어 체스판을 만들 때, 최소한으로 바꿔야하는 W와 B의 개수를 구하여라. 처음 생각8 x 8을 분리하여 그 판의 왼쪽 맨 위에서부터 다음 판과 색이 같은지 판단하여 다르다면 임시변수 temp에 다음 판의 색을 저장하고 있고,색이 같다면 카운트 변수를 +1 시켜준 후 temp의 색을 바꿔준다.(BBB 일경우 temp의 색을 바꿔주지 않으면 앞 뒤로 중복 카운트가 된다.)▶시뮬레이션 유형의 문제는 일단 문제가 길기 때문에 문제를 제대로 보지 못할 아니 않을 가능성이 크다. 이 문제의 경우에는 문제속에 힌트를 많이 주고 있다.▶문제의 마지막에 큰 힌트가 주어져있..
- Total
- Today
- Yesterday