본문 바로가기
[JAVA] 백준 16949 - 벽 부수고 이동하기 4 https://www.acmicpc.net/problem/16946 1과 0으로 이루어진 2차원 배열이 주어지며, 1은 벽이고 0은 빈 공간일 때, 각 벽을 부쉈을 때 도달가능한 빈 공간의 개수(부순 벽 포함) -> 빈 공간 영역의 각 칸수의 합 + 1이다. 각 영역에 번호를 붙인 뒤 탐색한 칸수를 쌍으로 HashMap에 저장하고 벽을 탐색하며 인접한 영역의 칸수를 더한 뒤 1을 더하고, 10으로 나눴다. 마지막 과정을 stream + distinct + toArray로 했다가 시간초과, Set으로 바꿔도 시간초과가 나서 결국 초기 탐색 방식을 DFS를 BFS로 수정하고 통과했다. import java.io.BufferedReader;import java.io.IOException;import java.. 2025. 10. 18.
[JAVA] 백준 1722 - 순열의 순서 https://www.acmicpc.net/problem/1722순열의 길이 N과 소문제 번호와 관련 데이터가 주어졌을 때 정답을 출력하는 문제이다.1번 소문제는 숫자 K가 추가로 주어지며 길이 N으로 만들 수 있는 사전 순 K 번째 순열을 출력하는 문제이고,2번 소문제는 순열이 주어졌을 때 이 순열이 몇번째 순열인지를 출력하는 문제이다.첫번째 문제는 먼저 한 숫자가 고정되었을 때 순열의 개수를 구하는데에서 시작했는데, 이는 (N-1)!이다.길이 N의 순열의 개수가 N! = N X N -1 X ... X 2 X 1일 때 N을 1로 치환한 값이기 때문이다.따라서 N이 4라면 개수는 4!=24이고 첫번째 자리에 들어올 수 있는 1~4의 숫자들이 3!=6 개씩 경우의 수를 차지한다.그러므로 K가 주어졌을 때 .. 2025. 10. 17.
[포트폴리오 정리] 25년 10월 포트폴리오 오랜만에 포트폴리오를 정리하고자 글을 작성하게 되었다.먼저 25년 초 DB형 퇴직금을 DC형 퇴직연금으로 전환해 연금계좌에서 투자를 시작했다.나스닥 채권 혼합 + 머니마켓으로 구성하려고 했던 포트폴리오는 점점 나스닥추종ETF 비중이 커지게 됐고,최근에 약 80%를 정리해 한국판 SGOV(TIGER 초단기 국채)로 옮겨놨다. 최근에 나스닥이 너무 고점이라고 판단한 것도 있고, 만약 이직할 때 조정구간이라 수익률이 낮아지면 슬플 것 같아 미리 수익실현을 했다. 물론 이직은 성공하지 못했다. 25년 5월에 ISA 계좌를 개설한지 3주년이 지나 ISA계좌를 재개설했다.비과세 한도 400만원을 초과하는 수익을 냈기 때문에 다시 개설해 비과세 한도를 리필하는 편이 낫다고 생각했기 때문이다. 그래서 25년 3월 쯤 .. 2025. 10. 17.
[JAVA] 백준 24464 - 득수 밥 먹이기 https://www.acmicpc.net/problem/24464n이 주어지면 규칙에 따라 득수가 식당에 가는 경우의 수를 구하는 문제이다.n의 범위와 출력 양식을 보면 DP로 풀어야할 것 같은 느낌이 든다.메모이제이션 배열은 두 개를 썼는데, 하나는 굶는 경우의 수를 저장하는 1차원 배열 n+1 칸이고나머지 하나는 n-1 X 4 의 2차원 배열을 사용해 방문하는 1~4번째 식당의 경우의 수를 각각 저장했다.1,4번째 식당을 방문한 경우 다음날에 각각 3,4번째 식당, 1,2번째 식당 -> 2개를 방문할 수 있지만 2번째와 3번째 식당을 방문한 경우는 각각 1개의 식당만 방문할 수 있기 때문이다.이렇게 배열을 선언했더니 모듈러 연산을 굉장히 많이 수행해야했다 ㅠㅠn번째 굶는 경우의 수 = n-1번째 식.. 2025. 10. 17.