과정.
[백준 1012] 유기농 배추 문제
#1. 조건 배추가 있는 곳은 1, 상하좌우 네방향이 인접한 지역, 인접한 지역들을 한마리의 지렁이가 해충 커버 가능. 최소 몇마리 지렁이 필요한가 [입력] 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 첫째 줄에는 배추를 심은 배추밭의 가로길이 M(1 ≤ M ≤ 50)과 세로길이 N(1 ≤ N ≤ 50), 그리고 배추가 심어져 있는 위치의 개수 K(1 ≤ K ≤ 2500)이 주어진다. 그 다음 K줄에는 배추의 위치 X(0 ≤ X ≤ M-1), Y(0 ≤ Y ≤ N-1)가 주어진다. 두 배추의 위치가 같은 경우는 없다. [출력] 각 테스트 케이스에 대해 필요한 최소의 배추흰지렁이 마리 수를 출력한다. #2. 사고과정 인접리스트를 통해서 인접 구역의 개..
람다에서 메서드 지역변수를 사용할 시 주의사항
#1. 개요 하나의 메서드 내부에서 사용되는 람다에서 사양하고 있는 메서드의 지역변수의 상태를 변경이 불가능하다. 왜 그럴까? 이해를 더 돕기위해 아래에 코드를 첨부한다. 'Variable 'a' is accessed from within inner class, needs to be final or effectively final' 이라는 경고문이 나오면 컴파일이 불가능하다. 위의 문장을 해석해보면 아래와 같다. 변수 'a'는 내부 클래스 내에서 액세스되며 final이거나 final 처럼 사용되어야 합니다. 간단히 말하면 해당 변수 a는 변경되면 안된다는 말이다. 왜 그럴까? #2. 자유변수 이유는 자유변수 때문이다. 자유변수 : 익명함수에서 처럼 메서드 자신 말고 외부에서 정의된 변수 이와 같은 자유변..
[백준 1213] 팰린드롬 선물하기
#1. 조건 임한수와 임문빈은 서로 사랑하는 사이이다. 임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다. 임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어 이름의 알파벳 순서를 적절히 바꿔서 팰린드롬을 만들려고 한다. 임문빈을 도와 임한수의 영어 이름을 팰린드롬으로 바꾸는 프로그램을 작성하시오. [입력] 첫째 줄에 임한수의 영어 이름이 있다. 알파벳 대문자로만 된 최대 50글자이다. [출력] 첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다. #2. 사고과정 팬린드롬 만들기다. 앞으로해도 뒤로 해도 ..
[백준 9375] 패션왕 신혜빈
#1 조건. [입력] 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다. 모든 문자열은 1이상 20이하의 알파벳 소문자로 이루어져있으며 같은 이름을 가진 의상은 존재하지 않는다. [출력] 각 테스트 케이스에 대해 해빈이가 알몸이 아닌 상태로 의상을 입을 수 있는 경우를 출력하시오. #2. 사고과정 최대값 최소값 확인. 테스트케이스 최대 100, 의상 수는 30 의상의 종류가 중요. 근거 : 같은 종류의 의상은 하나만 입을 수 있음. 이말은 이름이 달라도 종류가 같으..
Replication DB server Spring boot에 적용하기.
이전에 하나의 DB를 복제하고 두개의 디비로 만들었다. 목적은 요청을 분산하여 서버의 부하를 줄이는 것과 장애 발생시 빠른 대처가 가능해지기 때문이었다. 서버 부하가 발생하는 이유는 Application의 요청때문이다. 디비를 복제해 두개를 만들었다고 해서 부하가 줄어드는 것은 아니다. 이제 application에서 보내는 요청을 main과 replication으로 나눠보려고 한다. [환경] #Mybatis, #Mysql, #SpringBoot, #NCloud, #Java #1. 각 DB를 위한 Database Connection 정보 등록하기 디비에 연결을 하기 위해서 application.yml or application.properties에 디비 연결 정보를 등록해뒀다. 이제 디비가 두개로 나눠졌으..
[백준 1620] 포켓몬 도감 이다솜
#1. 조건 [입력] 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어. 둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포켓몬의 이름은 모두 영어로만 이루어져있고, 또, 음... 첫 글자만 대문자이고, 나머지 문자는 소문자로만 이루어져 있어. 아참! 일부 포켓몬은 마지막 문자만 대문자일 수도 있어. 포켓몬 이름의 최대 길이는 20, 최소 길이는 2야. 그 다음 줄부터 총 M개의 줄에 내가 맞춰야하는 문제가 입력으로 들..
[백준 2559] 수열풀기(프썸이를 사용하자)
#1. 조건 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 위한 연속적인 날짜의 수이다. K는 1과 N 사이의 정수이다. 둘째 줄에는 매일 측정한 온도를 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -100 이상 100 이하이다. 첫째 줄에는 입력되는 온도의 수열에서 연속적인 K일의 온도의 합이 최대가 되는 값을 출력한다. #2. 사고 과정 [나의 풀이] 백터를 사용해서 시도했다. 하지만 배열로 사용해도 충분했다. 백터를 사용할 때 문제는 하나씩 순서대로 뽑아낼 수가 없었다. 그래서 방법이 없었다. [좀 더 좋은 풀..
[EasyValet] #2. 프로젝트를 진행을 위한 Git-branch 전략 : Github-Flow
#1. Git branch전략 보통 세개의 git branch 전략이 있습니다. git-flow : git을 더 잘 사용하기 위한 전략 gitlab-flow : gitlab에서 나온 브랜치 전략 github-flow : github에서 나온 브랜치 전략(EasyValet에서는 이걸 사용합니다.) #git flow git flow 전략은 개발을 할때 git을 더 잘 사용하기 위한 약속과 같은 것입니다. master와 develop, 크게 이렇게 두가지로 나눠집니다. 기능을 추가할 경우 feature 브랜치를 만들어 개발하고 develop 브랜치로 commit합니다. 보통 feature/func1 처럼 명명하여 사용합니다. master branch : 운영 코드(배포 가능 상태)를 반영하고 있습니다. dev..