목록분류 전체보기 (159)
우당탕탕 개발일지
풀이1번 컴퓨터와 연결되어 있는 모든 컴퓨터의 개수를 찾으면 된다. 연결되어 있는 모든 노드를 구하기 때문에 BFS와 DFS 둘 다 상관없다고 판단했다. 입력값 초기화 num: 컴퓨터 개수networkCount: 네트워크 상에 연결된 컴퓨터 쌍의 수 networkInfo: 연결되어 있는 다른 컴퓨터의 번호 저장* networkInfo[n]에 n과 연결된 컴퓨터 번호가 저장되어 있다networkCheck: 각 컴퓨터를 확인했는지 여부 저장 값 networkCount 만큼 데이터를 입력받아 networkInfo에 각 컴퓨터 번호와 연결되어 있는 다른 컴퓨터 번호를 저장한다.편의성을 위해 num+1만큼의 크기를 잡고 0번째 원소는 사용하지 않는다.1번 컴퓨터와 연결된 컴퓨터 수를 구하기 때문에 무조건 ..
풀이처음에 입력값의 의미를 이해하지 못했다....다른 블로그랑 GPT한테 물어보고 이해했다.... ㅎ테스트 케이스 개수가 주어지는 것이 아니라 w,h와 지도정보를 계속 제공하다가 0 0를 만나면 프로그램 종료인 것이었다..! Queue를 활용하여 BFS로 풀었다. 현재 노드와 근접한 노드먼저 확인하는 것이 좋다고 판단했기 때문이었다. 메인0 0을 만나면 프로그램 종료이기 때문에 while문으로 반복하다가 0 0일 경우 빠져나가도록 구현했다. 주어진 땅, 바다 정보 저장 후, 배열을 돌면서 미방문이면서 땅인 노드에서 findLand(x, y) 함수를 호출했다. findLand(x, y) 함수해당 함수에서는 매개변수로 주어진 x,y 노드를 기준으로 8방향의 노드를 확인한다. 위에서 언급했다 싶이 BFS로..
풀이사실 문제를 이해 못해서 다른 블로그를 엄청 많이 봤다...!예시1번에서 내가 생각한 정답은 '1 1 4 4 6 3' 이었는데 왜 '4 6 1 3 1 4'인지 이해가 안되서 한참 보았다. 블로그를 통해 문제를 이해하고 다시 문제를 보니 내가 놓친 부분이 보였다.각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력노드 번호가 2번인 부모 노드부터 n번인 부모 노드 번호까지 출력하라는 의미인게 이제서야 보였다... ㅎ 먼저 제시된 예시1 트리를 표현했다1. 각 노드와 연결된 노드를 저장2. 연결되어 있는 노드를 방문하면서 각 부모 노드를 저장하면된다.각 노드와 연결된 노드각 노드의 부모 노드노드, 1: 4, 6노드, 2: 4, 7노드, 3: 5, 6노드, 4: 1, 2, 7노드, 5: 3노드, 6..
풀이* 각 시도 모두 메인 부분은 동일하고 'findEarthworm()' 함수 부분만 변경함. 1차 시도1이 연결되어 있는 노드 끝까지 탐색 후, 옆 노드로 이동해서 끝까지 탐색함으로 깊이우선탐색알고리즘이라고 판단그래서 스택과 재귀를 활용하여 구현해야 겠다고 생각해서 아래와 같이 구현 현재 노드 기준으로 연결된 노드가 1이고 아직 방문하지 않았다면 해당 함수 재귀로 호출함수 호출되면 스택에 현재 노드 저장 후, while에서 하나 빼서 사용def findEarthworm(startY, startX): checkArr[startY][startX] = True nearNode.append([startY, startX]) # 앞뒤위아래 moveXArr = [1, -1, 0, 0]..
테스트 환경백엔드: Spring Boot (JPA 기반)프론트엔드: React (Vite + Axios)DB: MySQL상품 목록 API: /api/store?sortby=newest측정 도구Postman (1초 간격 반복)크롬 개발자 도구 Network 탭1. 문제점React로 만든 쇼핑몰 서비스에서 상품 리스트 페이지 진입 시, 데이터가 늦게 표시되며 체감상 4~5초의 지연...Postman으로 API를 직접 호출해보니 평균 응답 시간은 약 250ms.그런데 브라우저에서는 최대 700ms까지 응답 지연 된 부분이 이상하다고 느껴졌다.데이터 크기는 많지 않음에도 응답 시간이 들쑥날쑥Entity → DTO 변환 로직에 stream().map() 사용 중상품 조회 쿼리에서 복합 조건 WHERE is_del..
풀이1차 시도: 시간 초과아... 너무 단순하게 생각했다.... ㅎ그냥 무작정 범위 값을 더했다...! 하지만 시간 초과... 여기저기 찾아보니까 DP를 사용하여야 한다구 한다.def peopleCount() : str = input() x1 = int(str.split(" ")[0]) - 1 y1 = int(str.split(" ")[1]) - 1 x2 = int(str.split(" ")[2]) - 1 y2 = int(str.split(" ")[3]) - 1 re = 0 for i in range(n): if i x2: continue for j in range(m): if j y2..
문제안전 지역은 잠겨있지 않은 지역의 덩어리임! 높이 = 4 >> 안전 지역 = 5높이 = 6 >> 안전 지역 = 4 안전역영의 최대 개 : 5 풀이2667번 문제에서 약간 조건이 추가된 문제였다. 덕분에 그때 코드 생각해보면서 문제를 풀어봤다. 1. 입력값 받기 & 최대 높이 구하기입력값을 받으면서 변수 m에 최대 값을 저장했다.비의 양에 대한 조건이 없었고 최대 높이 이상으로 오는건 다 동일한 값이기 때문...! m를 가지고 강수량별 안전 영역 수를 구한다. 2. 강수량별 안전 영역 개수 확인비가 안 오는 경우도 생각하여 높이는 0부터 m까지 반복문 실행함. 2-1. 변수 설정아래 변수들은 강수량별로 다른 정보를 가지고 있기에 해당 반복문에 변수를 선언 및 초기화를 진행했다.count >> 현..
문제과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 풀이 최종 코드import queuedef findDanji(x, y): # 상, 뒤, 하, 앞 moveX = [0, -1, 0, 1] moveY = [1, 0, -1, 0] q = queue.Queue(..