문제동영상 재생기에 대한 명령어가 주어졌을 때, 알맞게 시간 이동하여 최종 재생 위치를 도출하는 문제이다.명령어는 prev와 next 두 가지가 있으며, 현재 재생 위치가 오프닝 구간이면 자동으로 오프닝 건너뛰기를 실행한다.prev 명령은 현재 재생 위치에서 10 이전으로 이동하는 명령어이며 0보다 작아지지 않는다.next 명령은 현재 재생 위치에서 10 이후로 이동하는 명령어이며 최대 길이보다 커지지 않는다.오프닝 건너뛰기는 오프닝 구간 (op_start ≤ 현재 위치 ≤ op_end)인 경우 op_end로 이동한다.풀이문자열로 주어진 시간을 숫자로 변환하고, 명령어에 따라 시간을 더하고 뺌으로써 문제를 풀 수 있다.mm:ss 가 주어지면 t = mm*60 + ss 로 변환한다.prev 명령어가 주어지..
1. 개발 환경 셋팅 자바 웹 애플리케이션을 개발하기 위해서 자바 프로그램을 쉽게 구성하고 작동할 수 있게 도와주는 JDK와 자바 개발 툴로 많이 쓰이는 IntelliJ IDEA, 동적인 웹을 만들기 위해 자주 쓰이는 Tomcat을 설치하려고 한다. 1.1. JDK 설치하기 (Eclipse Temurin) https://adoptium.net/ Home | Adoptium The Adoptium® Working Group The Adoptium Working Group promotes and supports high-quality runtimes and associated technology for use across the Java ecosystem. Our vision is to meet the ne..
문제신고 시스템을 구현하여 특정 기준에 따라 신고된 유저의 계정을 정지하고, 신고자에게 결과를 메일로 알리는 과정을 코드로 구현하는 문제이다.각 유저의 신고는 중복되지 않게 처리해야 하며, 최종적으로 신고 결과에 따라 신고자가 받은 정지 메일 갯수를 반환한다.풀이정보를 저장할 HashMap들을 초기화한다.각 유저별로 그 유저를 신고한 사람들의 목록을 저장하기 위한 HashMap을 초기화한다. 이때 신고한 사람들의 중복을 허용하지 않기 위해 HashSet을 사용한다.유저별 메일 수신 횟수를 저장할 HashMap도 초기화합니다.신고 정보를 저장한다.신고 기록을 순회하며 신고자와 피신고자를 분리하고, 피신고자의 HashSet에 신고자를 추가한다.신고 횟수 조건을 체크하여 정지 메일을 보낸다.k번 이상 신고된 ..
문제문자열에 포함된 영단어를 숫자로 변환하는 과정을 구현하는 문제이다.예시) one4seveneight -> 1478풀이영단어 - 숫자 정보를 HashMap에 저장한다.for문을 통해 숫자 영단어를 순회하면서 replace 메서드를 사용해 숫자로 치환한다.최종적으로 치환된 문자열을 숫자로 변환하여 결과를 반환한다.Java 코드import java.util.HashMap;import java.util.Map;class Solution { public int solution(String s) { // 영단어-숫자 HashMap Map numMap = new HashMap(); numMap.put("zero", "0"); numMap.put("one", ..
반복문은 말 그대로 특정 코드를 여러 번 반복 실행할 수 있게 만드는 것을 말한다.그렇기에 상황에 맞는 적절한 반복문을 선택하면 효율적인 코드를 작성할 수 있다.이번 글에서는 Java의 주요 반복문인 for문, while문, 그리고 do-while문에 대해 알아보자.1. for문for문은 반복 횟수가 명확할 때 사용한다.초기화, 조건식, 증감식을 한 줄에 작성해 반복 횟수를 제어할 수 있다.for (초기화; 조건식; 증감식) { //반복할 코드}초기화: 반복 제어 변수를 선언하거나 초기화하는 부분이다.조건식: 반복을 계속할지 여부를 결정하는 조건이다. 이 조건이 true일 때만 반복한다.증감식: 각 반복이 끝날 때마다 실행되어 반복 제어 변수를 증감시킨다.// 예시for (int i = 0; i 위..
Python 언어에 익숙한 개발자라면, Java에서 문자열을 비교할 때 예상치 못한 결과를 마주할 수 있다.Python에서 문자열을 비교하는 경우 == 연산자만 사용해도 문제가 없다.하지만 Java에서는 같은 문자열을 비교하더라도 == 연산자를 사용하면 false를 반환하는 경우가 있다.그 이유를 알기 위해서는 먼저 Java의 메모리 모델을 이해해야 한다. Java 메모리 모델Java에서 문자열이 메모리에 저장되는 방식을 이해하면 문자열 비교 방법을 이해하는데 도움이 된다.문자열 리터럴: 문자열 리터럴은 String Pool에 저장되며, 컴파일 시점에 동일한 값이라면 같은 메모리 주소를 공유한다.new 키워드로 생성된 문자열: new 키워드를 사용해 생성한 문자열은 Heap에 저장되며, 동일한 값을 가진..
조건문프로그래밍 언어에서 조건문은 코드의 흐름을 제어하는 핵심적인 요소이다. 특정 조건이 주어졌을 때, 이 조건이 True인지 False인지에 따라 서로 다른 코드 블록이 실행되도록 하여 다양한 상황에 맞는 동작을 가능하게 한다. 조건문은 크게 3 가지 형태로 나뉜다.단일 조건문 (if문)조건이 True일 때만 코드 블록이 실행된다.이중 조건문 (if-else문)조건이 True일 때와 False일 때 각각의 코드 블록이 실행된다.다중 조건문 (if-elseif-else문)여러 조건을 순차적으로 검사하여, 조건에 맞는 코드 블록이 실행된다.1. Python의 if 문Python의 if 문은 간단하고 직관적이다.들여쓰기를 통해 코드 블록을 구분하며, 잘못된 들여쓰기는 에러를 발생시킨다.if / elif / ..