분류 전체보기
-
이번 문제는 이렇게 푸는게 맞나..? 싶었던 문제였다. Map에 하나하나 담아줄 때 이렇게 하는게 맞나 싶었는데 다른 방법도 있겠지만 제일 먼저 생각난 방법이 이거였다. 변수 초기화 : 모든 성격 유형의 점수를 저장할 Map 객체를 만든 후, 각 성격 유형의 점수를 초기화한다. Map result = new HashMap(); result.put("R", 0); result.put("T", 0); result.put("C", 0); result.put("F", 0); result.put("J", 0); result.put("M", 0); result.put("A", 0); result.put("N", 0); 응답 처리 : survey 배열을 순회하면서 각 질문에 대한 사용자의 선택을 기반으로 점수를 계산..
프로그래머스 - 성격 유형 검사하기이번 문제는 이렇게 푸는게 맞나..? 싶었던 문제였다. Map에 하나하나 담아줄 때 이렇게 하는게 맞나 싶었는데 다른 방법도 있겠지만 제일 먼저 생각난 방법이 이거였다. 변수 초기화 : 모든 성격 유형의 점수를 저장할 Map 객체를 만든 후, 각 성격 유형의 점수를 초기화한다. Map result = new HashMap(); result.put("R", 0); result.put("T", 0); result.put("C", 0); result.put("F", 0); result.put("J", 0); result.put("M", 0); result.put("A", 0); result.put("N", 0); 응답 처리 : survey 배열을 순회하면서 각 질문에 대한 사용자의 선택을 기반으로 점수를 계산..
2024.04.01 -
이번 문제는 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 -
이번 문제의 주요 로직은 다음과 같다. 공원의 초기 상태 파악하기: 문자열 배열 park를 이용하여 공원의 상태를 2차원 배열 newPark에 저장한다. 이때, 산책 시작 위치도 함께 저장한다. 명령에 따라 이동 처리하기: 문자열 배열 routes에 담긴 각 명령을 분석하여 이동할 방향과 거리를 결정한다. 이때, move 메소드를 호출하여 실제 이동 처리를 진행한다. 이동 가능 여부 확인하기: move 메소드 내에서는 산책 도중 공원을 벗어나거나 장애물에 부딪히는지 확인한다. 만약 이동 중 장애물을 만나거나 공원 경계를 벗어나려고 한다면, 해당 명령을 무시하고 위치를 조정하지 않는다. 먼저 공원의 초기 설정이다. for(int i = 0; i < park.length; i++) { for(int j = ..
프로그래머스 - 공원 산책이번 문제의 주요 로직은 다음과 같다. 공원의 초기 상태 파악하기: 문자열 배열 park를 이용하여 공원의 상태를 2차원 배열 newPark에 저장한다. 이때, 산책 시작 위치도 함께 저장한다. 명령에 따라 이동 처리하기: 문자열 배열 routes에 담긴 각 명령을 분석하여 이동할 방향과 거리를 결정한다. 이때, move 메소드를 호출하여 실제 이동 처리를 진행한다. 이동 가능 여부 확인하기: move 메소드 내에서는 산책 도중 공원을 벗어나거나 장애물에 부딪히는지 확인한다. 만약 이동 중 장애물을 만나거나 공원 경계를 벗어나려고 한다면, 해당 명령을 무시하고 위치를 조정하지 않는다. 먼저 공원의 초기 설정이다. for(int i = 0; i < park.length; i++) { for(int j = ..
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