본문 바로가기
  • 개발하는 곰돌이

분류 전체보기202

[Kotlin] 백준 3447 : 버그왕 문제 링크 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 문제 해설 주어진 입력에서 BUG라는 문자열을 모두 제거하면 된다. 우선 입력을 EOF까지 받기 때문에 아래와 같은 형태처럼 입력이 null이 아닐 때까지 입력받는 반복문으로 처리해야 한다. var s: String? while (readLine().also { s = it } != null) { ... } BUG라는 문자열을 모두 제거하기 위해 단순히 replace()로 처리하면 되긴 하지만 출력 설명의 예시를 잘 주목해야 한다. 즉, 입력으로 주어진 .. 2023. 10. 14.
[Spring Boot] H2 DB Embedded Mode 사용하기 목차 들어가기 전에 H2는 굉장히 작고 가벼운 RDBMS로, 그 특성상 제공되는 기능은 제한적이지만 속도가 빠르고 별도의 프로그램 없이 웹브라우저 기반의 DB 콘솔을 사용할 수 있다는 장점도 있다. 이러한 특징으로 인해 다양한 기능이 필요하지 않은 소규모 서비스나 단위 테스트에서 많이 사용된다. H2는 별도의 엔진을 설치하지 않고 사용할 수 있는 In-memory Mode와 Embedded Mode를 지원하는데 이 글에서는 Embedded 방식을 사용하는 방법과 In-memory 방식과의 차이에 대해 정리하려고 한다. H2의 여러 모드들이 갖는 특징 H2는 Server Mode, In-memory Mode, Embeded Mode라는 세가지 방식으로 사용할 수 있다. 각 방식의 특징은 다음과 같다. Se.. 2023. 10. 4.
[회고록] 입사 1년차 돌아보기 목차 어느새 입사한 지 1년이 지났다. 뭔가 정신없이 시간이 지난 것 같은데 그동안 무슨 일이 있었는지는 정리해 두는게 좋을 것 같아서 회고록을 써보려고 한다. 회사 생활 입사 후 가장 처음 맡은 프로젝트는 회사에서 제공하는 다양한 서비스 이용 내역을 하나로 모아서 확인할 수 있는 통합 정산 시스템 개발이었다. 기존에는 사측에서 B2B로 제공하는 서비스마다 별도의 관리 페이지가 있어서 회계팀이 각 서비스의 관리 페이지에서 이용내역을 확인하고 직접 메일을 작성하여 이용기관에 청구 메일을 발송하는 불편함이 있었다. 이렇게 분산된 서비스 정산을 하나로 합쳐서 사내에서도 편리하게 정산과 이용 내역에 따라 자동으로 작성된 메일로 요금 청구를 진행하고, 이용기관에서도 자신들이 이용하는 서비스의 이용 내역을 한 번에.. 2023. 9. 22.
[Kotlin] 백준 21944 : 문제 추천 시스템 Version 2 문제 링크 21944번: 문제 추천 시스템 Version 2 recommend, recommend2, recommend3 명령이 주어질 때마다 문제 번호를 한 줄씩 출력한다. 주어지는 recommend, recommend2, recommend3 명령어의 총 개수는 최소 1개 이상이다. www.acmicpc.net 문제 해설 [Kotlin] 백준 21939 : 문제 추천 시스템 Version 1의 확장 문제. Version 1에서 알고리즘 분류를 비롯하여 추천 명령어 2종류가 추가되었다. 이전 문제와 달리 문제를 객체로 구현하였다. 이 때 문제 클래스는 난이도가 높은 순으로, 난이도가 같다면 문제 번호가 큰 순으로 정렬되도록 Comparable을 구현하여 작성한다. private class Problem(.. 2023. 9. 13.
뒤늦은 스위치 구매! 월급날 기념으로 퇴근하자마자 신도림에 가서 드디어 젤다 / 마리오 머신(?)이랑 겸사겸사 집에서 제대로 즐기려고 프로콘까지 샀습니다. 스플래툰3는 전혀 모르지만 에디션이 이뻐보여서 샀는데 생각보다 더 이쁜거 같네요. 일단 야숨부터 스타트! 2023. 9. 8.
[Kotlin] 백준 27162 : Yacht Dice 문제 링크 27162번: Yacht Dice 《Yacht Dice》는 여러 명이 플레이하는 주사위 게임입니다. 플레이어는 우선 주사위를 $5$개 굴립니다. 이후 원하는 주사위를 고정시킨 뒤, 남은 주사위를 다시 굴리는 일을 두 번 이하로 할 수 있 www.acmicpc.net 문제 해설 다양한 조건 분기에 따라 조건에 맞는 계산을 수행하는 문제. Y에 해당하는 족보의 점수를 모두 계산한 후 가장 높은 값을 출력하면 된다. 이미 3개의 주사위가 고정되어 있기 때문에 나머지 2개의 주사위가 최적인 경우를 생각해볼 수 있다. Ones부터 Sixes까지는 나머지 2개의 주사위가 족보에서 요구하는 주사위의 눈이 나왔을 때 최대가 된다. 즉, 입력으로 주어진 고정된 주사위 중에서 (족보에 따라 1~6의 개수 + 2.. 2023. 9. 5.
[Kotlin] 백준 6568 : 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다 문제 링크 6568번: 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다 그래서 여러분도 크리스마스날 심심해서 컴퓨터를 하나 만들었다. 이 컴퓨터는 아주 적은 수의 명령어를 사용하는 하나의 프로세서, 32바이트 메모리, 8비트짜리 가산기, 5비트짜리 프로그램 카 www.acmicpc.net 문제 해설 특별한 알고리즘이 필요하진 않은 아닌 단순 구현 문제. 뭔가 복잡해보이지만 차근차근 문제에서 요구하는 내용을 구현해보자. 먼저 컴퓨터의 메모리가 32바이트라고 되어있다. 또한 이 컴퓨터는 메모리와 프로그램 구문(명령어)를 공유한다는 조건이 있고, 각 명령어의 길이가 1바이트라는 언급이 있으므로 길이가 32인 정수 배열로 나타낼 수 있다. 각 명령어는 3비트의 명령어 종류와 5비트의 피연산자를 표현한다.. 2023. 8. 31.
[Spring Boot] 스프링이 제공하는 다양한 어노테이션을 통한 유효성 검사와 응답 처리 목차 들어가기 전에 요청값이 유효한지 검사하는 것은 굉장히 중요한 일이다. 아무 요청값이나 마구잡이로 받아들이면 오류나 비정상적인 동작을 유발할 수 있기 때문이다. 스프링에서는 유효성 검사 중, 입력값의 형태가 유효한지 쉽게 확인할 수 있도록 다양한 어노테이션을 제공한다. 스프링에서 제공하는 유효성 검사를 위한 어노테이션의 종류와 사용방법에 대해 알아보자. 의존성 라이브러리 추가 스프링부트 2.3 이상의 버전부터는 빌드 환경에 따라 아래 의존성 라이브러리를 추가해줘야 한다. Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' Gradle(Kotlin) implementation("org.springframework.. 2023. 8. 28.