본문 바로가기
반응형

코딩/문제풀이-백준30

백준 1052번 - 물병 (C++) 문제 해결 방법 입력값을 2진수로 변환하여 string에 저장한다.(10입력 -> 1010저장 = 2^3L물병 1개, 2^1L 물병 한개라는 뜻) 이후 가장 L가 적은 물병들을 합쳐주고, 이를 string 내부의 1 갯수(물병갯수)가 내가 들 수 있는 물병의 갯수보다 같거나 작아질때까지 반복한다. 이 과정에서 L가 작은 물병들을 합치기 위해 사용한 추가 물병의 갯수 만큼 답을 출력한다. 아쉬웠던 점 예시로 1000을 탐색할 때, 역순으로 탐색하며 0을 만나면 0 갯수를 누적시켜주고 1을 만나면 누적시킨 0의 갯수만큼 특정 변수에 누적시키는 형태를 띄고 있는데, 구조상 진행하면서 해당 탐색 인덱스 뒤에 0밖에 올 수 없기 때문에 그냥 자릿수를 통해서 내 뒤에 있는 0의 갯수를 구할 수 있었다. 지금 생각났.. 2021. 7. 16.
백준 4963번 - 섬의 개수 (C++) 문제 해결 방법 Dfs방식을 사용하여 세계 전체를 순환하다가, 땅을 찾는다면 해당 땅을 기준으로 주변 탐색-> 땅을 탐색했다면 탐색된 땅의 주변 검색 -> 을 반복하며 연결된 땅을 모두 검색한다. 아쉬웠던 점 [주변칸 탐색 -> 땅이라면 또 주변칸 탐색 -> 반복]으로 구성되어있어, 이전에 검색했던 범위는 반복을 하지 않는 방법이 있나 생각해보았는데 잘 모르겠다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #include #include using n.. 2021. 7. 16.
백준 1694 - FEN 체스 (C++) 문제 해결 방법 입력값을 기준으로 먼저 체스판의 배치를 배열에 넣어준 뒤, 체스판을 순회하며 해당 자리에 기물이 있다면 그 기물이 갈 수 있는 모든 경로의 좌표를 체크한다. 이를 끝까지 반복하고, 체크되지 않은 좌표의 갯수를 더해 출력한다. 아쉬웠던 점 상하좌우/대각/나이트 이동 코드가 한 45줄 가량 나왔는데 더 줄일 수 있을 것 같다... 더럽다. 또한, 체스판의 크기만큼 반복을 돌리는데 입력할때, 입력을 기반으로 경로 파악할때, 빈칸 체크할때 총 세번이나 돌아간다. 쓰면서 생각났는데 O를 X로 바꿀때(경로 체크할때) + 체스 기물 갯수 하면 마지막에 체크되지 않은 좌표를 찾기위해 순회하는 일은 없어도 됐다... 의미없는 반복이 한번 더 들어갔다. 코드 1 2 3 4 5 6 7 8 9 10 11 12.. 2021. 7. 15.
백준 14499번 - 주사위 굴리기 (C++) 문제 문제에 낚시가 숨어있다. 시작 좌표 입력값을 잘 보면, 해당 입력값을 나타내는 단어는 xy지만, 실제로 입력받는 좌표는 세로,가로 순서이다.(사실상 y, x) 해결 방법 주사위의 회전을 구현하는것이 문제의 핵심이라고 생각하여 6칸짜리 배열을 통하여 이를 구현하였다. (0=좌/1=우/2=앞/3=상/4=뒤/5=하) 3D적으로 더 깔끔하게 구현 할 수 있을것 같은데 생각이 떠오르지 않아 그냥 저렇게 하였다. 아쉬웠던 점 주사위를 구현하는 부분에서 3D형태로 구현하지 못해서 아쉽다.... 외에도 전체적으로 코드가 좀 더럽다 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3.. 2021. 7. 14.
반응형