본문 바로가기
반응형

문제풀이27

백준 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.
백준 17413번 - 단어 뒤집기 2 (C++) 문제 해결 방법 문자열을 순회하며 더미 문자열에 순회한 글자를 추가하며 진행한다. 이후, 단어가 완성되는 조건 [ex)띄어쓰기를 입력받았다면 이전까지 입력 받은 문자열은 한 단어]을 만난다면 여지껏 저장해둔 더미 문자열을 조건에 따라 뒤집거나/뒤집지 않은 상태로 정답 문자열에 추가한다. 이후 더미 문자열은 초기화한다. 아쉬웠던 점 공백을 따로 추가해주는 부분이 뭔가 아쉽다. 더 깔끔하게 할 수 있을 것 같은데.. 코드 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 #include #include #inclu.. 2021. 7. 9.
백준 2606번 - 바이러스 (C++) 문제 해결 방법 링크(pair형)를 담는 벡터에 링크를 모두 담은 후, BFS방식을 사용하여 탐색함. 아쉬웠던 점 링크를 그냥 벡터에 넣어서 그래프 탐색 과정에서 모든 링크를 순회하다 보니 복잡도가 올라갔다. 2차원 형식으로 만들어서 줄여야 했는데 간만이라 잊었다... 코드 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 #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); co.. 2021. 7. 9.
반응형