2186 문자판 알고리즘(DFS, DP) 1. 문자판을 주어진 조건대로 순회하되, 결과값이 int 안이라는 걸보고 엄청 클 수도 잇다는 걸 예측 or 빙글빙글 계속 돌 수 있으니 DP가 잇어야겠다고 예측 2. DP를 DP[r][c][d] 로 구현하되, -1로 초기화를 시키고, 0인것도 기록 -> 문자열이 아예 없을 수도 잇으니 0도 기록하여 ...
2166 areaOfPolygon
2166 areaOfPolygon 알고리즘(기하학) 1. 사선정리 사용 구현법 1. 최대 4000000000000이 나올 수 있으므로, int대신 long long, float은 쓰지말고 double로 통일 시킨다. 2. double은 최대 15자리수를 표현가능하므로, 위 값도 충분히 들어갈 수 있다. 코드 #include <ios...
2151 거울설치
2151 거울설치 알고리즘 (BFS) 1. 자기 방향으로만 쭉 가다가 ! 를 만나면 자기방향 + 양옆으로 이동. 양옆으로 이동할 땐 거울을 설치하는 것이므로 거울 + 1. 2. 이때 visit으로 이미왔던곳을 안가면, 다른 루트로 가는 빛은 중간에 끊기기에, visit에 빛이 그곳에 도착했을 때의 거울의 개수를 저장함. 그리고 다음 빛이 그곳에...
2143 sumOfTwoArray
2143 sumOfTwoArray 알고리즘(이분탐색, 누적합) 1. A배열은 그대로 두고, B 배열은 가능한 모든 누적합의 집합을 만들고, 그것을 정렬함 -> 이때 그냥 배열에 집어넣으면 최대 500500개의 원소가 있어서 메모리에서 박살나고, 찾는데 시간도 박살남 -> 난 set을 택했음 -> Pair 구조체를 선언해서...
2098 TSP
2098 TSP 알고리즘(외판원 순회, DP, 비트마스크) 1. 비트마스크로 각 비트마다 하나의 도시라고 치고, 검사를 함. 2. 방문하지 않았고, 갈수 있는 도시를 방문하는 식으로 끝까지감. -> 끝까지 갔을 때 다시 돌아갈 수 있는 길이 있으면 그 값 반환, 없으면 IMPOSSIBLE 반환 -> 그 전 재귀로 돌아와서 가장 최솟값...
2056 task
2056 task 알고리즘(위상정렬) 1. Task 구조체를 선언하여, time : 현재 task가 걸리는 시간을 저장 / timeTaken : 현재까지 오는데 선행으로 필요한 작업을 수행하면서 걸리는 시간 중 가장 긴 시간 저장 next : 다음으로 이어지는 작업들을 저장 2. Task 구조체 배열을 앞에서부터 검사 -> 현재 tas...
20055 Samsung sw test
20055 Samsung sw test 알고리즘 (구현) 1. durability와 isThereRobot 변수로 구성된 Cell 구조체로 컨베이어 벨트를 만듦 2. 무한 루프 안에서, 이동시키고 -> 내리는 위치 로봇빼고 -> 로봇이동 시키고(이동시 내구도 1감소) -> 내리는 위치 로봇빼고 -> 올리는 위치 로봇 올리고(내...
1987 Alphabet
1987 Alphabet 알고리즘(백트래킹) 1. 어떤 알파벳을 검사했는지 기록하는 건 check[26] 배열을 선언하고, 각 알파벳에서 65 값을 빼서 각 자리로 접근한다.('A' - 65 == 0) 2. 인접한 칸을 검사하고, 가능하면 check 표시하고 인접한 칸으로 이동. 안되면 돌아와서(Back Tracking) 다른 인접한 칸 검사 3....
1956 운동
1956 운동 알고리즘(플로이드 워셜) 1. 문제 파악 : 그래프 상의 어떤 점들 집합이건 최소로 사이클을 이루는 집합이면 됨 2. 그래프 관련 알고리즘 1. 다익스트라 : 출발점에서 모든 정점까지의 거리 -> 해당 x 2. 밸만포드 : 다익스트라와 마찬가지 3. MST : 최소신장트리 -> 사이클은 감지할 수 있으나, 그것이 최소...
19235 모노미노도미노
19235 모노미노도미노 알고리즘(구현) 1. 파란 맵과 초록 맵을 따로 만듬.(bool 형으로 해서 true면 블록이 있고, false면 없는 거로 취급) 2. 매 실행마다 블록을 잘 놓고 -> 업데이트 하면서 점수 얻고 -> 연한부분 있으면 당긴 다음에 -> 다음 실행 3. 실행마다 얻은 점수를 잘 기록해서 리턴함. 그리고 남은...