본문 바로가기

전체 글172

[백준, C++] 8980번 택배 문제https://www.acmicpc.net/problem/8980 해설문제를 다른 시각으로 해석하면 이해하기 수월해지는 문제입니다.보내는 마을 -> 막대의 시작 지점받는 마을 -> 막대의 끝 지점박스 개수 -> 막대의 단위 길이당 무게마을 -> 지지축 (허용 가능한 최대 무게 = C) 예를 들어, C=100이고, '1번마을에서 3번마을로 50개의 박스를 보낸다'를 바꿔서 해석하면 '1번 지지축에서 2번 지지축에 걸쳐있는 막대의 무게는 100이다. 따라서 1번 지지축과 2번 지지축이 각 50의 무게를 부담한다.'입니다.(1번 지지축에서 3번 지지축이 아닌 이유는 받는 마을(막대의 끝)에서는 트럭에서 박스(단위 길이당 무게)를 하차하기 때문) 위를 이해하고나면 이 문제는 N개의 지지축 위에 최대한 막대를.. 2024. 11. 2.
[백준, C++] 11967번 불켜기 문제https://www.acmicpc.net/problem/11967 해설일반적인 풀이 방식은 새로운 방에 불을 켤 때마다 BFS에서 방문 여부를 체크하는 vis배열을 모두 0으로 초기화한 후, 재탐색을 진행합니다.이 풀이의 시간복잡도 O(N) = N^4일 것입니다.  제가 구현한 방식의 시간복잡도 O(N) = N^2입니다. 즉, 위에서 언급한 새로운 방에 불을 켤 때마다 BFS에서 방문 여부를 체크하는 vis 배열을 초기화하는 과정을 진행하지 않습니다. 조건BFS를 기반으로 구현하였습니다.먼저 Queue에 삽입되는 좌표는 베시가 접근할 수 있는 방의 좌표입니다.  해설에서 언급한 새로운 방에 불을 켤 때마다 BFS에서 방문 여부를 체크하는 vis배열을 모두 0으로 초기화하는 이유는 새로 불이 켜진 방.. 2024. 10. 11.
[백준] 14443번 벽 부수고 이동하기 2 (2차원 배열) https://www.acmicpc.net/problem/14442 해설검색을 통해 찾는 대부분의 풀이는 3차원 배열을 사용하여 해결벽을 부순 개수에 따른 2차원의 방문 여부를 체크하는 배열은  벽을 부순 개수가 다르면 서로 독립적이므로 불필요한 탐색과정이 발생이를 해결하기 위해 2차원 배열의 조건을 까다롭게 설정하여 이를 해결결과적으로 이전의 방식보다 메모리와 시간에서 최적화 성공 조건먼저 BFS는 물 파동과 같이 퍼져나간다는 것을 이해해야 합니다. 어떤 지점이 이미 이전 큐의 값에 의해 도달되었다면, 이후의 값들은 무조건 이전 큐의 값보다 느리기 때문에 무시 가능합니다.하지만 이 문제에서는 벽을 부순 개수라는 새로운 조건이 추가되었습니다. 이를 곰곰히 생각해보면, 예를 들어, 벽을 1개 부순 queu.. 2024. 10. 9.
[CLion, 백준] 알고리즘 문제 테스트 코드 소개GoogleTest를 활용하여 작성한 코드의 다수의 테스트 케이스와 정답을 한 번에 테스트할 수 있는 프로세스 예를 들어, 백준 14442번 문제의 3개의 테스트 케이스를 아래와 같이 메모장에 저장 시, 일괄 테스트 가능6 4 201001110100000000111000096 4 1010011101000000001110000154 4 30111111111111110-1 이 프로젝트가 필요한 사람들을 위해 해당 프로젝트의 깃 주소를 첨부하겠습니다.따라서 프로젝트 구축 과정은 생략하고, 사용 방법 위주로 글을 작성하겠습니다.프로젝트 깃 주소https://github.com/MinKevin/-CLion-Algorithm-Test-Code/tree/v1.0.0 사용 방법1. 아래 플러그인을 CLion에 설치.. 2024. 10. 9.
[Spring Boot]B2B 이커머스 플랫폼 비즈큐레이터 프로젝트 설명 기업간의 대량 구매/판매 및 맞춤 상품 제작 의뢰를 중개해주는 B2B 플랫폼 담당 1. 인증 (Spring Security를 통한 로그인|로그아웃, JWT 토큰) 2. 의뢰서 (CRUD) Github https://github.com/growing-every-day/ebnatural-bizcurator-backend Api 설계 https://mkevin-study.notion.site/API-f7750933ed964026ab922863edad7301?pvs=4 주요 기술 스택 SpringBoot SpringSecurity SpringDataJPA JWT 프로젝트 방향성 1. 현업과 유사한 프로젝트 구조 최종 목표는 취업이기 때문에 현업에서도 도움이 될만한 프로젝트를 진행하고 싶었습니다. .. 2023. 9. 12.
[백준] 1238 - 파티 by C++ https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 관점 뒤집기라고해야하나? 개인적으로 참신한 관점에서의 풀이를 발견해서 이를 남기려한다. 알고리즘 방식 핵심은 1. X 에서 모든 정점까지의 거리 ( vector value; ) 2. 모든 정점에서 X 까지의 거리 ( vector reverseValue; ) 위 값을 구하고, 이를 바탕으로 정답을 도출한다. 일반적인 풀이로는 모든 정점에 대해서 다른 정점까지의 거리를 .. 2023. 8. 17.