본문 바로가기

전체 글116

[BOJ] 1789번 수들의 합 파이썬 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 풀이 #dp 처음에 dp배열에 합들의 값을 저장해줬었는데 그렇게 하니 메모리초과가 났다. 그래서 그냥 sum 변수에 값을 저장하는 방식으로 바꿔 풀었다. 가장 많은 개수의 자연수의 합이 되어야 하기 때문에 가장 잘잘하게(?) 합이 구성되어야 한다. 그렇기 때문에 1부터 더해줘야 한다고 생각을 했고, 이렇게 작은 수부터 더했을 때 sum이 S의 이상이 되면 그 인덱스 값을 저장했다. S와 같은 경우에는 index값이 정답이 되고 S 초과한 경우 딱 초과한 수만큼의 수를 1개 빼주면 .. 2022. 8. 8.
[BOJ] 14719번 빗물 파이썬 문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경우 0을 출력하여라. 풀이 #시뮬레이션 양쪽으로 블록으로 막혀있는 만큼만 물을 채울 수 있다. 따라서 블록이 양쪽으.. 2022. 8. 7.
[BOJ] 10988번 팰린드롬인지 확인하기 파이썬 문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 풀이 #문자열 파이썬 문자열 처리 연습하기 위해 풀어본 문제! while 문을 돌면서 양 쪽의 인덱스가 만날 때까지 문자를 비교해준다. 코드 str = input() left = 0 right = len(str)-1 while left 2022. 8. 7.
[SpringBoot] ec2에 배포했을 때 Timezone 한국 시간으로 설정하기 LocalDateTime.now()를 사용해서 글 올린 시간 등을 계산해야 하는 로직을 짜던 중 시간이 한국 시간보다 -9시간 되어 측정되는 현상을 발견했다. 이를 해결하기 위해 여러 방법을 시도 해보았는데 1. atZone으로 설정하기 LocalDateTime.now().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime(); 먼저 자바 코드를 위와 같이 변경했다. 위와 같이만 변경하면 localhost 상에서는 제대로 동작하는데 ec2 서버에 올리면 원래 문제대로 -9시간으로 나오는 현상을 발견했다. 2. EC2 서버 시간 변경하기 ec2 인스턴스의 서버 시간을 변경해보고 reboot도 했지만 이것도 안됐다! 3. Bean으로 TimeZone 자동 설정 이 방법으로 .. 2022. 8. 6.