문제재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 4가지 중 하나이다. 턴 한 번은 1번 말부터 K번 말까지 순서대로 이동시키는 것이다. 한 말이 이동할 때 위에 올려져 있는 말도 함께 이동하며, 가장 아래에 있는 말만 이동할 수 있다. 말의 이동 방향에 있는 칸에 따라서 말의 이동이 다르며 아래와 ..
위 내용은 인프런 - 스프링 핵심 원리(고급편) 을 듣고 혼자 정리한 내용입니다.틀리거나 잘못된 내용이 있으면 댓글로 알려주세요. 상황프로젝트가 잘 동작하는지 확인하기 위해 로그를 찍어야 하는데 아래와 같이 프로젝트 요청의 깊이가 보여야하고 같은 요청이라는 것을 알기위해 요청마다 ID도 같이 출력할 것. 현재 프로젝트 흐름OrderControllerV3 -> log 출력 -> OrderServiceV3 -> log 출력 -> OrderRepositoryV3 -> log 출력 -> OrderRepositoryV3 end log 출력 -> OrderServiceV3 end log 출력 -> OrderControllerV3 end log 출력 프로젝트 구조Log 관련LogTraceConfig@Configur..
문제유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가 벽을 긁으면 안 된다. 즉, 파이프는 항상 빈 칸만 차지해야 한다. 파이프를 밀 수 있는 방향은 총 3..
2024.05.07 일 오늘 날짜로 백준 500문제를 풀었다. 딱히 문제 수가 중요하다기 보다는 그냥 기록용으로 남겨두고 싶은 의미가 더 크다. 문제 수와 랭크는 실력과 상관없다는 것을 또 한번 느끼고 간다. 일단 나부터가 실력이 그렇게 좋지 못하기 때문에 더더욱 상관없다고 느껴지는 것 같다. 제대로 알고리즘을 준비했을 때부터 약 6개월 정도가 지난 시점인데, 알고리즘을 준비하기 전에도 이미 풀어 놓은 문제들까지 포함해서 500문제이기 때문에 그 때부터 푼 문제로는 아마 500문제에서 조금 부족할 것 같다. 개월 수를 세보니 생각보다 꽤 지났구나 싶다.500 문제를 풀었을 때 상상으로는 어느정도 문제는 다 풀 수 있겠지? 싶었다. 현실은 500 문제를 풀었어도 여전히 알고리즘은 어렵고, 코테도 쉽지 않다..
문제아기 상어가 성장해 청소년 상어가 되었다. 4×4크기의 공간이 있고, 크기가 1×1인 정사각형 칸으로 나누어져 있다. 공간의 각 칸은 (x, y)와 같이 표현하며, x는 행의 번호, y는 열의 번호이다. 한 칸에는 물고기가 한 마리 존재한다. 각 물고기는 번호와 방향을 가지고 있다. 번호는 1보다 크거나 같고, 16보다 작거나 같은 자연수이며, 두 물고기가 같은 번호를 갖는 경우는 없다. 방향은 8가지 방향(상하좌우, 대각선) 중 하나이다. 오늘은 청소년 상어가 이 공간에 들어가 물고기를 먹으려고 한다. 청소년 상어는 (0, 0)에 있는 물고기를 먹고, (0, 0)에 들어가게 된다. 상어의 방향은 (0, 0)에 있던 물고기의 방향과 같다. 이후 물고기가 이동한다. 물고기는 번호가 작은 물고기부터 순서..