java
-
이번 문제는 replaceAll() 메소드와 정규표현식을 사용하는 문제였다. 그리 어렵다고 느껴지는 문제는 아니었다. 전체 코드를 보자. class Solution { public String solution(String new_id) { new_id = new_id.toLowerCase(); new_id = new_id.replaceAll("[^\\w-_.]", ""); new_id = new_id.replaceAll("\\.+", "."); if(new_id.charAt(0) == '.') new_id = new_id.substring(1); if(new_id.length() != 0) { if(new_id.charAt(new_id.length() - 1) == '.') new_id = new_id...
프로그래머스 - 신규 아이디 추천이번 문제는 replaceAll() 메소드와 정규표현식을 사용하는 문제였다. 그리 어렵다고 느껴지는 문제는 아니었다. 전체 코드를 보자. class Solution { public String solution(String new_id) { new_id = new_id.toLowerCase(); new_id = new_id.replaceAll("[^\\w-_.]", ""); new_id = new_id.replaceAll("\\.+", "."); if(new_id.charAt(0) == '.') new_id = new_id.substring(1); if(new_id.length() != 0) { if(new_id.charAt(new_id.length() - 1) == '.') new_id = new_id...
2024.04.01 -
Product 객체를 만들어 이 문제를 해결해봤다. 먼저 Product class class Product { int code; int date; int maximum; int remain; public Product(int code, int date, int maximum, int remain) { this.code = code; this.date = date; this.maximum = maximum; this.remain = remain; } // Getter 메서드들... } Product 객체를 생성한 후에 조건에 맞는 product만을 선별을 해야한다. 그리고 sort_by에 맞는 정렬 기준을 생성해준다. for(int i = 0; i < data.length; i++) { Product pr..
프로그래머스 - 데이터 분석Product 객체를 만들어 이 문제를 해결해봤다. 먼저 Product class class Product { int code; int date; int maximum; int remain; public Product(int code, int date, int maximum, int remain) { this.code = code; this.date = date; this.maximum = maximum; this.remain = remain; } // Getter 메서드들... } Product 객체를 생성한 후에 조건에 맞는 product만을 선별을 해야한다. 그리고 sort_by에 맞는 정렬 기준을 생성해준다. for(int i = 0; i < data.length; i++) { Product pr..
2024.04.01 -
이번 문제는 다른 문제보다 훨씬 더 쉽게 느껴졌다. 바탕화면 분석 : 먼저, 주어진 wallpaper 배열을 순회하며 파일이 위치한 가장 왼쪽, 오른쪽, 위, 아래 지점을 찾는다. 좌표사용 : 이렇게 찾은 좌표를 이용해 드래그의 시작점과 끝점을 결정한다. class Solution { public int[] solution(String[] wallpaper) { int[] answer = new int[4]; int top = 51; int bottom = 0; int left = 51; int right = 0; for(int i = 0; i < wallpaper.length; i++) { for(int j = 0; j < wallpaper[0].length(); j++) { if(wallpaper[i..
프로그래머스 - 바탕화면이번 문제는 다른 문제보다 훨씬 더 쉽게 느껴졌다. 바탕화면 분석 : 먼저, 주어진 wallpaper 배열을 순회하며 파일이 위치한 가장 왼쪽, 오른쪽, 위, 아래 지점을 찾는다. 좌표사용 : 이렇게 찾은 좌표를 이용해 드래그의 시작점과 끝점을 결정한다. class Solution { public int[] solution(String[] wallpaper) { int[] answer = new int[4]; int top = 51; int bottom = 0; int left = 51; int right = 0; for(int i = 0; i < wallpaper.length; i++) { for(int j = 0; j < wallpaper[0].length(); j++) { if(wallpaper[i..
2024.04.01 -
이번 문제는 각 개인정보의 유효기간을 계산하여, 주어진 날짜와 비교 후 지워야 할 데이터를 선별하는 것이다. 이번 문제를 풀기위해 DateTimeFormatter와 LocalDate 객체를 사용했다. 유효기간 Map객체에 매핑 : 유효기간을 terms 배열에서 termMap에 저장한다. Key는 약관, value는 유효기간으로 저장한다. Map termMap = new HashMap(); for(int i = 0; i < terms.length; i++) { termMap.put(terms[i].split(" ")[0], Integer.parseInt(terms[i].split(" ")[1])); } 개인정보 검토 및 파기 대상 식별 : 개인정보의 약관 종류와 수집 일자를 파악한다. 해당 약관의 유효기간..
프로그래머스 - 개인정보 수집 유효기간이번 문제는 각 개인정보의 유효기간을 계산하여, 주어진 날짜와 비교 후 지워야 할 데이터를 선별하는 것이다. 이번 문제를 풀기위해 DateTimeFormatter와 LocalDate 객체를 사용했다. 유효기간 Map객체에 매핑 : 유효기간을 terms 배열에서 termMap에 저장한다. Key는 약관, value는 유효기간으로 저장한다. Map termMap = new HashMap(); for(int i = 0; i < terms.length; i++) { termMap.put(terms[i].split(" ")[0], Integer.parseInt(terms[i].split(" ")[1])); } 개인정보 검토 및 파기 대상 식별 : 개인정보의 약관 종류와 수집 일자를 파악한다. 해당 약관의 유효기간..
2024.03.31 -
이번 문제를 해결하기 위한 방법은 선수들의 현재 순위를 관리하는 것이다. 이를 위해 HashMap을 사용하여 각 선수의 이름과 현재 순위를 key-value 쌍으로 저장한다. 해설진이 선수 이름을 부를 때마다 해당 선수는 바로 앞 선수를 추월한 것으로 간주하여 순위를 업데이트한다. 1. 초기 순위 설정 : 선수들의 초기 순위를 HashMap에 저장한다. 이 때 선수들의 이름을 key로, 현재 등수를 value(index) 값으로 사용한다. Map runners = new HashMap(); for(int i = 0; i < players.length; i++) { runners.put(players[i], i); } 2. 추월 상황 처리 : 해설진이 부른 이름을 기반으로 순위 변경 로직을 실행한다. 호출..
프로그래머스 - 달리기 경주이번 문제를 해결하기 위한 방법은 선수들의 현재 순위를 관리하는 것이다. 이를 위해 HashMap을 사용하여 각 선수의 이름과 현재 순위를 key-value 쌍으로 저장한다. 해설진이 선수 이름을 부를 때마다 해당 선수는 바로 앞 선수를 추월한 것으로 간주하여 순위를 업데이트한다. 1. 초기 순위 설정 : 선수들의 초기 순위를 HashMap에 저장한다. 이 때 선수들의 이름을 key로, 현재 등수를 value(index) 값으로 사용한다. Map runners = new HashMap(); for(int i = 0; i < players.length; i++) { runners.put(players[i], i); } 2. 추월 상황 처리 : 해설진이 부른 이름을 기반으로 순위 변경 로직을 실행한다. 호출..
2024.03.31 -
Kotlin의 다양한 함수 사용법 코틀린은 개발자의 편의를 위해 다양한 함수를 제공한다. 이번 포스트에서는 확장 함수, 멤버 함수, 인픽스 함수, 인라인 함수, 지역 함수 등 코틀린의 다양한 함수 사용법에 대해 알아볼 거다. 확장함수 확장 함수는 기존 클래스에 새로운 함수를 추가할 수 있는 기능이다. 이 함수는 클래스 밖에서 정의되지만, 클래스의 메서드처럼 사용할 수 있다. 단, 확장 함수는 원본 클래스의 private 또는 protected 멤버에 접근할 수 없다. fun String.lastChar(): Char = this[this.length - 1] 위 예시는 String 클래스에 lastChar라는 확장 함수를 추가하는 방법을 보여준다. 이 함수는 문자열의 마지막 문자를 반환한다. 멤버함수 v..
Study About Kotlin 9Kotlin의 다양한 함수 사용법 코틀린은 개발자의 편의를 위해 다양한 함수를 제공한다. 이번 포스트에서는 확장 함수, 멤버 함수, 인픽스 함수, 인라인 함수, 지역 함수 등 코틀린의 다양한 함수 사용법에 대해 알아볼 거다. 확장함수 확장 함수는 기존 클래스에 새로운 함수를 추가할 수 있는 기능이다. 이 함수는 클래스 밖에서 정의되지만, 클래스의 메서드처럼 사용할 수 있다. 단, 확장 함수는 원본 클래스의 private 또는 protected 멤버에 접근할 수 없다. fun String.lastChar(): Char = this[this.length - 1] 위 예시는 String 클래스에 lastChar라는 확장 함수를 추가하는 방법을 보여준다. 이 함수는 문자열의 마지막 문자를 반환한다. 멤버함수 v..
2024.03.28 -
코틀린에서 배열과 컬렉션을 다루는 방법 Kotlin은 안드로이드 개발에 매우 인기있는 언어이며, 그 유용성은 백엔드 개발에도 확장된다. 오늘은 Kotlin 에서 배열과 컬렉션을 다루는 방법에 대해 알아보자. 배열 다루기 Kotlin에서 배열을 사용하는 방법은 Java와는 다소 다르다. 아래 순서대로 Java 코드와 Kotlin 코드이다. public class Lecture15 { public static void main(String[] args) { int[] array = {100, 200}; for (int i = 0; i < array.length; i++) { System.out.printf("%s %s", i, array[i]); } } } fun main() { val array = arr..
Study About Kotlin 8코틀린에서 배열과 컬렉션을 다루는 방법 Kotlin은 안드로이드 개발에 매우 인기있는 언어이며, 그 유용성은 백엔드 개발에도 확장된다. 오늘은 Kotlin 에서 배열과 컬렉션을 다루는 방법에 대해 알아보자. 배열 다루기 Kotlin에서 배열을 사용하는 방법은 Java와는 다소 다르다. 아래 순서대로 Java 코드와 Kotlin 코드이다. public class Lecture15 { public static void main(String[] args) { int[] array = {100, 200}; for (int i = 0; i < array.length; i++) { System.out.printf("%s %s", i, array[i]); } } } fun main() { val array = arr..
2024.03.28 -
코틀린에서 중첩 클래스를 다루는 방법 중첩 클래스의 종류 Java 기준으로 중첩 클래스의 종류로는 static을 사용하는 중첩 클래스, 내부클래스, 지역클래스, 익명클래스 등이 있다. static을 사용하는 클래스는 외부에서 직접적으로 참조하지 못하는 반면 내부 클래스는 밖에서 클래스를 직접 참조가 가능하다. 따라서 클래스 내의 클래스를 만들 때에는 static을 활용하는 것을 권장한다. public class JavaHouse { private String address; private LivingRoom livingRoom; public JavaHouse(String address) { this.address = address; this.livingRoom = new LivingRoom(10); } ..
Study About Kotlin 7코틀린에서 중첩 클래스를 다루는 방법 중첩 클래스의 종류 Java 기준으로 중첩 클래스의 종류로는 static을 사용하는 중첩 클래스, 내부클래스, 지역클래스, 익명클래스 등이 있다. static을 사용하는 클래스는 외부에서 직접적으로 참조하지 못하는 반면 내부 클래스는 밖에서 클래스를 직접 참조가 가능하다. 따라서 클래스 내의 클래스를 만들 때에는 static을 활용하는 것을 권장한다. public class JavaHouse { private String address; private LivingRoom livingRoom; public JavaHouse(String address) { this.address = address; this.livingRoom = new LivingRoom(10); } ..
2024.03.26