알고리즘119 [백준] 2630 색종이 만들기 c++ 옆에 종이랑 비교하다가 다르면 n을 2로 나누고 재귀로 풀자 라고 생각했었고 두번 헤맸다. 첫번째는 n*n블록 안에 하나라도 다른 색깔이 있는지 없는지가 중요한거지 옆에 종이랑 다른것이 중요한 것이 아니었다. 그래서 이중 for 문을 통해 옆에 종이랑 비교하려다 보니까 이미 자른 종이를 또 잘랐다^^ 두번째는 1,1 부터 검사하고 1,3 -> 3,1 -> 3,3 순으로 검사하고 싶었는데. 재귀를 어떻게 해야할지 몰라서 헤맸다. 그냥 함수 호출을 4번하면 됐었던 것..^^ 최종 풀이 : y,x 부터 가로, 세로 크기가 n인 정사각형 범위에서 1이면 cnt를 증가 시킨다. cnt==0이면 전부 0만 들어가 있는 것이므로 white++ cnt==n*n이면 전부 1만 들어가 있는 것이므로 blue++ 둘 다 아.. 2022. 3. 10. 알고리즘 문제해결 전략 문제 해결 능력: 언어의 특성, 하드웨어와 운영체제에 관한 지식,라이브러리들에 대한 유의사항, 메모리,시간제한, 재사용성 등 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는 능력 프로그래밍 대회에서 배울 수 있는 것 1.텍스트 기반의 문제이기 떄문에 문제를 해결하는 데이만 집중할 수 있음 2. 시간제한과 메모리 제한을 통해 적절한 알고리즘과 자료구조를 공부하는 데에 도움이 되고 더 나아가 원칙들을 이해 하고 변형하는 연습을 통해 주제들을 깊이 이해하는 데 큰 도움이 된다. 3. 테스트 케이스가 많아 정답과 오답이 명확하다. 오류의 존재를 모르고 넘어갈 가능성이 적다. 정답여부의 빠른 객관적인 피드백을 받을 수 있다. 4.프로그램의 정보가 실시간으로 제공되기 때문에 프로그램의 효율성을 신경쓰게 되고.. 2022. 3. 7. dfs 알고리즘 깊이우선탐색 -어떤 정점을 방문하여 확인한 후 그 정점과 연결된 정점들 중에서 우선 순위가 가장 빠른 하나를 선택해 방문해 나가는데, 더 이상 방문할 곳이 없으면 이전 상태로 되돌아가는 탐색 방법 구현하는 방법 1.순환호출을 이용하는 방법 2.명시적인 스택을 사용하여 인접한 정점들을 스택에 저장하였다가 다시 꺼내는 방법 방문 여부를 기록하기 위해 배열 visited를 사용한다. 그래프가 인접행렬 또는 인접 리스트로 표현되엇는가에 따라 깊이 우선탐색 프로그램이 약간 달라짐 모든 정점의 visited 배열값은 false로 초기화 정점이 방문될 때마다 해당 정점의 visited배열값은 TRUE로 변경 -인접행렬,재귀함수 -인접리스트 - stack 사용 2021. 5. 30. 이전 1 ··· 27 28 29 30 다음