본문 바로가기

분류 전체보기149

[백준] JAVA 자바 : 신입 사원 (1946번) 문제는 대략 저렇다. 요약하자면, 서류 순위와 면접 순위가 동시에 그 누구에게도 뒤쳐지지 않는 사람을 뽑는 문제이다. 실버1은 아니고 골드5정도 될 것 같은... 사고력을 요구했다... 다행히 나는 풀었는데 어떻게 풀었냐면, 정수 배열을 하나 만든 다음, 서류 순위를 배열의 인덱스로 사용하고, 면접 순위를 배열의 값으로 사용했다. 그리고 배열을 1부터 돌면서 현재 제일 순위가 낮은 사람과 비교해서, 그 사람보다 하나라도 높다면 result에 1을 더한다. 즉 이건 그 배열의 값이 이전의 최대값보다 큰 사람은 탈락이라는 뜻이다. 배열의 인덱스로 사용하는 서류 순서는 따로 비교해 주지 않아도 되는데, 인덱스가 면접 순위를 나타내는데 어차피 배열은 인덱스를 1부터 하나씩 늘려가며 돌기 때문에, 배열의 현재 요.. 2024. 3. 22.
[백준] JAVA 자바 : 30 (10610번) 입력받은 수가 30의 배수라면, 그 수의 자릿수 조합으로 만들 수 있는 최댓값을 출력하는 문제이다. 나는 처음에 N이 최대 10^5개의 숫자로 구성된다는 말이, N의 최댓값이 100,000이라는 줄 알아서 그냥 int로 결과값을 만들었는데 계속 틀려서... 질문 게시판을 보니까 이게 자릿수 최댓값이 10만 개라는 뜻이었다... 그래서 결과값을 StringBuilder으로 처리해 줬다... 근데 시간이 꽤 오래 걸리는 이슈...ㅋㅋ 난 어떻게 풀었냐면, N의 모든 자릿수를 돌면서 sum에 더해준다. 그 과정에서 0의 개수도 체크해 준다. 그리고 조회한 자릿수는 우선순위 큐에 내림차순으로 넣어 준다. 다 돌고 난 후 sum이 3의 배수이면서 0이 하나 이상 있다면, 그건 30의 배수이므로 우선순위 큐에서 하.. 2024. 3. 14.
[백준] JAVA 자바 : A → B (16953번) 두 수 A와 B를 입력받으면, 'A에 2를 곱하거나' '1을 붙이는' 방법으로만 B를 만드는 문제이다. 나는 어떻게 해결했냐면... 쉽게 설명하자면 1. B의 1의 자리가 1이라면 B에서 10을 나누고, 2. 그게 아니라면 B에서 2를 나눠서 B가 A보다 작아질 때까지 반복했다. 예를 들면 162의 경우에는, 1의 자리가 1이 아니므로 2를 나눠 81으로 만든 후 sum(결과값)에 1을 더한다. 그 다음에는 B가 81이 되므로, 1의 자리가 1이므로 10을 나눈 후 sum에 1을 더한다. 다음은 B가 8이므로, 1의 자리가 1이 아니므로 2를 나눠 4로 만든 후 sum에 1을 더한다. 다음은 B가 4이므로, 1의 자리가 1이 아니므로 2를 나눠 2로 만든 후 sum에 1을 더한다. → 이후에는 B > A.. 2024. 3. 14.
[도착 알리미 SUFY] 11. SUFY 완성 지금까지 귀찮아서 블로그에는 안 올렸지만... 나름 열심히 필요한 기능들을 모두 구현 완료했다.이제 진짜 실 생활에 유용하게 쓸 수 있을 듯... 쓸 사람이 없으면 나라도 열심히 써야지 ㅋㅋ 주소는 다음과 같다: https://kimdevstudio.com  (지금은 닫혔읍니다.) SUFY kimdevstudio.comㅋㅋ 이 도메인 뭐임?? 이라고 물으실 수도 있는데...7월에 워드프레스로 기술 블로그 구축한답시고 저 도메인 1년동안 샀는데 이번에 닫아버려서 ㅋㅋ그냥 버리기 아까우니까 그 EC2 서버랑 도메인 재사용했읍니다... 내년 7월 되면 새로 도메인 구매해야지... 구현된 기능들OAuth2.0과 카카오 API를 활용한 카카오 로그인Spring Security와 Jwt토큰을 통한 보안 로그인, S.. 2024. 3. 9.
[백준] JAVA 자바 : 카드 정렬하기 (1715번) 그리디 알고리즘 파트에서 처음 맞이하는 골드 단계 문제이다. 문제 자체는 어렵진 않은데... 나는 몇 시간을 헤맸다...ㅋㅋㅋ 입력된 정수 배열을 처음부터 끝까지 돌면서 가장 작은 값 두 개를 빼서 sum에 더한 후, 크기에 맞게 배열에 다시 넣어주면 된다. 여기서 난 처음에 배열에서 값을 뺀 후에 일일이 Arrays.sort()로 정렬을 해줬었는데, 그래서 계속 메모리초과 + 시간초과가 떴다... 결국 못 참고 아래의 '알고리즘 분류'를 봤는데 우선순위 큐가 있네?? 그래서 우선순위 큐를 사용해주면 쉽게 정렬을 유지한 채로 요소의 삽입과 삭제가 가능해진다! 우선 순위 큐는 이번에 처음 써보는데... 새로 하나 배워간다...! import java.io.BufferedReader; import java... 2024. 3. 8.
[도착 알리미 SUFY] 10. 설정한 알림 조회 이제 핵심 기능들은 거의 다 구현했고, 편의 기능들을 추가로 더 구현하면 될 것 같다.첫 번째로는 내가 설정한 알림 목록을 조회하는 기능을 구현해보려고 한다!일단 다음과 같이 '설정된 알림 조회' 버튼을 만들어 주고, 클릭 시 /searchAlarms로 이동하게 해주었다.그리고 /searchAlarms 페이지로 이동하면, div에 접속한 유저가 설정한 알림들을 모두 보여주면 된다. 알림들을 보여주는 컨트롤러와 로직은 다음과 같다.@GetMapping("/alarmList")public ArrayList alarmList(@RequestParam String username) {    ArrayList alarms = homeService.alarmList(username);    return alarms.. 2024. 2. 25.
반응형