백준 15662번 - 톱니바퀴 (2) (Go)
·
algorithm
https://www.acmicpc.net/problem/15662 분석이 문제는 주어진 조건에 따라 여러 개의 톱니바퀴를 회전시키는 시뮬레이션 문제입니다.시간복잡도는 회전 횟수 k번 동안 최대 t개의 톱니바퀴를 검사하고 회전시켜야 하므로 O(k * t)$입니다. 1,000 * 1,000 = 1,000,000으로 2초라는 시간 제한 내에 충분히 여유롭게 통과 가능합니다.공간복잡도는 톱니바퀴 상태를 저장하는 int 형 2차원 배열 O(t * 8)$입니다. 8 byte * 1,000 * 8은 약 64KB 정도로 매우 여유롭습니다. 알고리즘 로직을 생각해 보면,연쇄 회전 결정:특정 톱니바퀴가 회전할 때, 양옆의 톱니바퀴가 함께 회전할지 여부를 먼저 결정해야 합니다.회전이 실제로 일어나기 전의 상태를 기준으로 ..
백준 17406번 - 배열 돌리기 4 (Go)
·
algorithm
https://www.acmicpc.net/problem/17406분석이 문제는 완전탐색이고, 탐색 순서에 따라 결과가 바뀌니 순열 탐색 문제입니다.시간복잡도는 순열생성 후 k 번 회전 수행, n * m 배열을 탐색해야하니 O(k! * (k * (n * m)) 입니다. 3 공간복잡도는 int형 2차원 배열 O(n * m) = 8 byte * 50 * 50 = 약 20 KB 로 여유롭습니다. 알고리즘 로직을 생각해보면, 순열 (Permutation):회전 연산이 k개 주어질 때, 이를 나열하는 순서는 최대 k!가지입니다.배열 복사:각 순열 케이스마다 원본 배열이 변하면 안 되므로, 반드시 배열을 복사하여 시뮬레이션을 진행해야 합니다.배열 회전:주어진 r, c, s 에 대해 가장 바깥쪽 사각형부터 안쪽 사각..
Gin vs Echo: 비슷해 보이는 두 프레임워크, 왜 내 프로젝트는 Echo였을까?
·
go
Go 언어로 백엔드를 개발할 때 가장 먼저 마주하는 고민은 '프레임워크 선택'입니다. 사실상 표준인 Gin을 쓸 것인가, 아니면 강력한 편의성을 제공하는 Echo를 쓸 것인가? 최근 진행 중인 프로젝트에서 LLM은 저에게 Echo를 추천해주었는데, 처음엔 의아했지만 직접 사용해보니 그 이유가 명확해졌습니다. 오늘은 Gin과 Echo의 차이점을 분석하고, 왜 복잡한 로직을 다루는 현대적인 앱에서 Echo가 매력적인 선택지인지 정리해보겠습니다.1. Gin vs Echo 핵심 차이점두 프레임워크 모두 성능이 뛰어나지만, 추구하는 방향에서 미묘한 차이가 있습니다.특징GinEcho커뮤니티가장 압도적인 사용자와 레퍼런스 보유Gin보다는 적지만 탄탄한 사용자층속도 / 성능극강의 성능 (HttpRouter 기반)Gin..