문제 설명 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 미션은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. 단, 연산자의 우선순위를 새로 정의할 때, 같은 순위의 연산자는 없어야 합니다. 즉, + > - > * 또는 - > * > + 등과 같이 연산자 우선순위를 정의할 수 있으나 +,* > - 또는 * > +,-처럼 2개 이상의 연산자..
Sping boot를 이용하면서 어플리케이션의 프론트 변경사항이 변경될 때서버를 종료했다 다시 시작했다 하는 건 상당히 귀찮다...;;하지만 이 귀찮은 부분을 spring-boot-devtools 라이브러리로 재시작하지 않고 페이지를 새로고침함으로써 변경사항을 반영시킬 수 있다. spring-boot-devtools 적용하기적용 방법은 정말 간단하다. 1. build.gradle에 의존성 추가아래의 코드를 build.gradle의 dependencies에 추가합니다.developmentOnly 'org.springframework.boot:spring-boot-devtools' 2. IntelliJ 환경 설정1. File -> Setting -> Advanced Settings -> Compiler안의 ..
Intelij에서 서블릿 컨테이너로 Tomcat을 사용 시 아래 처럼 JSP로 접속 시 200, servlet으로 접속 시 404 에러를 반환하는 경우가 있습니다. servlet만 404가 뜨는 이유는 Tomcat 버전과 Java EE 버전이 맞지 않아서 그런것인데 아래와 같이 Java EE 버전과 Tomcat 버전을 맞추면 정삭적으로 Servlet 접속 시 작동하게 됩니다. JAVA EE 8 + Apache Tomcat 9.0.X JAVA EE 7 + Apache Tomcat 8.5.X JAVA EE 7 + Apache Tomcat 8.0.X Java EE의 버전 확인 아래 방법은 버전 확인만 가능하고 변경은 하지 못합니다. 버전을 변경하고 싶다면 글을 아래로 스크롤해주세요. 프로젝트 우클릭 + Add..
Gradle이란 ? Gradle은 CI/CD를 위해 아래 작업들을 자동화 시켜 주는 Groovy 기반의 오픈소스 빌드 도구입니다. Compile - Java 파일의 소스 코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환 Test - 유닛 테스트, UI 테스트 Packaging - 스프링 코드를 패키징 해 .jar 파일이나 .war 파일로 생성 Deploy & Run - 서버 실행 빌드 도구란? 소프트웨어 개발에 있어서 소스 코드를 실행 가능한 어플리케이션으로 만들어주는 도구를 말합니다. 빌드 과정을 자동화하여 관리하는 기능을 하기 때문에 빌드 관리 도구 도는 빌드 자동화 도구라고 불리기도합니다. Gradle Project 구성 .gradle - gradle 버전 별 엔진 및 설정 파일 .idea - ..
문제 설명 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다. 네오는 자신이 기억한 멜로디를 가지고 방금그곡을 이용해 음악을 찾는다. 그런데 라디오 방송에서는 한 음악을 반복해서 재생할 때도 있어서 네오가 기억하고 있는 멜로디는 음악 끝부분과 처음 부분이 이어서 재생된 멜로디일 수도 있다. 반대로, 한 음악을 중간에 끊을 경우 원본 음악에는 네오가 기억한 멜로디가 들어있다 해도 그 곡이 네오가 들은 곡이 아닐 수도 있다. 그렇기 때문에 네오는 기억한 멜로디를 재생 시간과 제공된 악보를 직접 보면서 비교하려고..
문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop을 하면 맨 앞에 있는 원소 1이 추출되어 [2, 3, ..