목록코딩테스트 (25)
이우의 개발일지

코드트리 Carry 피하기 문제 https://www.codetree.ai/problems/escaping-carry/description n개의 숫자가 주어지고, 그 숫자를 적절하게 골라 더했을 때 carry가 전혀 발생하지 않는 최대로 고를 수 있는 숫자의 수를 계산하는 프로그램을 작성해보세요.여기서 carry란, 수와 수를 더했을 때, 10의 자리를 넘기는 것을 말합니다. 예를 들어 3과 6을 더하면 9가 되고 자리수가 넘어가지않아 carry가 발생하지 않지만, 5와 7은 더하면 12가 되므로 carry가 발생합니다. 또, 81과 72를 더하면 일의 자리를 더할때는 carry가 발생하지 않더라도 십의 자리를 더할 때는 carry가 발생하게 되므로 불가능한 조합입니다. 즉, 각 자리수를 모두 각각 더..

코드트리 화면에 출력 문제 조건 : 시간제한(1초), 메모리 제한 (80MB) 화면에 출력 풀이1. BFS이 문제를 풀면서 한 가지 간과한 점이 있다. 처음 풀이를 풀 때 재귀함수로 풀이를 시작했으나, 시간초과가 뜨는 에러를 범했다. 재귀함수는 DFS와 똑같이 깊이 우선 탐색이라 한 경로를 끝까지 탐색하고, 목표 상태에 도달하면 그 값을 기록한 후 다른 경로를 탐색하는 방식이기 때문에 빠르게 최적의 값을 탐색할때는 적합하지 않다. 따라서, BFS를 사용하면 가까운 상태부터 탐색하며, 모든 경로를 확장하는 방식인데 이 방식은 최단 경로나 최소 동작 수를 찾을 때 유리한 알고리즘이다. 목표 상태에 처음으로 도달한 순간 항상 최단 경로 또는 최소 동작 수에 해당하기 때문에 목표 상태에 도달하면 바로 종료..

백준 11651번 좌표 정렬하기 문제 이 문제는 간단하게 y좌표를 오림차순으로 정렬하고, 만약 y좌표가 같다면 x좌표의 오름차순으로 정렬하는 문제이다. 간단하게 x,y 를 동시에 받을려면 pair 를 써서 x,y를 한 묶음으로 저장해놓는다. 또한, sort 함수를 쓰는데 이때 x를 따지는 것이 아닌 y를 따지고, y가 같다면 x를 따져야하기 때문에 sort함수에 넣을 조건문을 따로 써준다.bool comp(pair& a, pair& b) { if (a.second == b.second) { return a.first 이런식으로 따로 쓰면 되는데, 자주 나오는 개념이니 까먹지 않는 것이 좋다. 11651번 좌표 정렬하기 C++ 전체 코드 #include #include // syst..