본문 바로가기

알고리즘4

Ways To Tile A Floor (Feat. 수학적인 사고) https://practice.geeksforgeeks.org/problems/ways-to-tile-a-floor5836/1# Ways To Tile A Floor | Practice | GeeksforGeeks practice.geeksforgeeks.org 위 문제 자체는 아마도 많은 사람들이 이미 많이 접한 문제일 것이다. 이 문제 자체를 다시(아마 이번에 처음 푼 건 아닌 거 같다) 풀게 된 이유는 최근에 보게 된 아래 글 때문이다. https://evan-moon.github.io/2019/10/30/make-simple-with-math/ 수학과 함께 복잡한 문제를 단순하게 만들자! 최근 많은 IT 기업들이 개발자를 채용할 때 코딩 테스트를 시행하고 있다. 회사마다 어떤 스타일의 문제를 출제.. 2021. 8. 1.
백준 1014번 컨닝 풀이 (JAVA) https://www.acmicpc.net/problem/1014 1014번: 컨닝 최백준은 서강대학교에서 “컨닝의 기술”이라는 과목을 가르치고 있다. 이 과목은 상당히 까다롭기로 정평이 나있기 때문에, 몇몇 학생들은 시험을 보는 도중에 다른 사람의 답지를 베끼려 한 www.acmicpc.net 이 문제는 먼가 쉬울 거 같으면서도 쉽지 않다고 판단되어서 빠르게 힌트를 찾아보았다...^^ 일단 이 문제는 모든 경우의 수를 해보기는 힘들다. 다 해보려면 N과 M이 10일 때 교실안에 최대 100개의 자리가 있고 모든 경우의 수는 2의 100승이 된다. (2의 27승이 대충 1억이다. 1억건 수행을 보통 1초라고 생각하고 문제를 풀고 있다.) 그래서 좀 더 효율적인 방법을 생각해내야만 한다. 이 문제를 푸는 .. 2021. 7. 24.
백준 1194번 달이 차오른다, 가자 (JAVA) https://www.acmicpc.net/problem/1194 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, www.acmicpc.net 이 문제를 보면서 나는 아직도 BFS의 원리를 완벽히 이해하지 못했구나 라는 생각이 들었다.(대체 언제 완벽히 이해할 수 있지?) BFS는 현재 정점에서 인접한 정점들을 queue에 넣어서 차례로 방문하는 알고리즘이다. 현재 정점에서 인접한 정점들부터 방문하기 때문에 목표지점에 도착하는 최단지점 경로를 return 하게 된다. 보통 visited배열을 써서 중복방문 .. 2021. 6. 12.
백준 9019번 DSLR 풀이 (JAVA) 9019번: DSLR (acmicpc.net) 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net solved.ac에서 gold 문제를 그냥 아무거나 풀어보자 해서 문제를 골랐고 문제를 풀기 전에 알고리즘 분류를 확인한 나는 그래프 탐색 문제라길래 오랜만에 BFS 문제나 빨리 풀어보자는 생각을 하게 됐다. 그러나 문제를 보면서 난 BFS를 여전히 잘 모르는구나라는 생각을 하게 되었고 이 문제를 풀면서 BFS를 좀 더 이해하게 됐다(사실 지금도 완벽히 안 지는 잘 모르겠다) 일단 이 문제는 이 문제가 .. 2021. 5. 22.