일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Java
- BufferedReader
- 알고리즘
- DP
- LIS
- 다리 만들기
- 다이나믹프로그래밍
- Queue
- Stack
- 그리디
- dfs
- 빅데이터
- HashMap
- 스택
- Python
- BFS
- 백트래킹
- 새벽코딩
- 문자열
- 시뮬레이션
- 백준
- 아스키코드
- 배열
- 구현
- 탐색
- 완전탐색
- 프로그래머스
- oracle
- SQL
- 브루트포스
- Today
- Total
새벽코딩
[프로그래머스] 1레벨 몰아풀기 (JAVA) 본문
1. 서울에서 김서방 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/12919
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA 코드 (서울에서 김서방 찾기)
import java.util.*;
class Solution {
public String solution(String[] seoul) {
String answer = "";
int idx = Arrays.asList(seoul).indexOf("Kim");
answer = "김서방은 ".concat(Integer.toString(idx)).concat("에 있다");
return answer;
}
}
※ 생각정리 (서울에서 김서방 찾기)
문자열배열에서 원하는 문자열의 위치를 찾기위해 ArrayList형태로 변경해주는 작업이 필요하며, Arrays.asList(문자열[])을 사용하여 쉽게 변경가능하다.
ArrayList는 indexOf()함 수로 해당 문자열또는 문자의 위치를 찾을 수 있으며 이는 정수형으로 리턴된다.
2. 나누어 떨어지는 숫자 배열
https://school.programmers.co.kr/learn/courses/30/lessons/12910
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA코드 (나누어 떨어지는 숫자 배열)
import java.io.*;
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
Set<Integer> treeSet = new TreeSet<>();
for(int i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
treeSet.add(arr[i]);
}
}
Integer[] a = treeSet.toArray(new Integer[0]);
int[] answer = Arrays.stream(a).mapToInt(i->i).toArray();
if(answer.length == 0){
answer = new int[1];
answer[0] = -1;
}
return answer;
}
}
※ 생각정리 (나누어 떨어지는 숫자 배열)
임의의 배열에 있는 숫자들로 임의의 수를 나누었을때 떨어지는 값들의 목록을 오름차순 정렬해서 가지는 배열을 리턴하는 문제이다.
TreeSet은 항상 오름차순 정렬임을 보장하므로 TreeSet에 데이터들을 담아 해당 값들을 int[]으로 리턴했다.
이를 위해 Set to Integer array 와 Integer array to int array를 해주었다. 이런 과정을 돌아보니 그냥 ArrayList에 담아 정렬하는것이 낫겠다는 생각이 들었지만, 이번에는 Set을 이용해 정렬을 테스트 해보는것에 의의를 두었다.
※ 잠시, int와 Integer의 차이점 알고가기
[int]
자료형 변수(primitive data type)
산술 연산 가능
null초기화 x
저장공간이 작음
[Integer]
산술연산을 하기위해서 Unboxing작업이 필요하다
null 값으로 처리 가능
저장공간이 큼
3. 핸드폰 번호 가리기
https://school.programmers.co.kr/learn/courses/30/lessons/12948
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA 코드 (핸드폰 번호 가리기)
class Solution {
public String solution(String phone_number) {
String answer = "";
int len = phone_number.length() - 1;
String front = phone_number.substring(0, len - 3);
String last = phone_number.substring(len-3);
front = front.replaceAll("[0-9]", "*");
answer = front.concat(last);
return answer;
}
}
※ 생각정리 (핸드폰 번호 가리기)
문자열을 뒤에서 부터 4자를 기준으로 앞뒤로 나누었다. 앞에 위치한 숫자들은 정규식을 이용해 모두 "*"로 마스킹 처리하였다.
-새벽코딩-
'알고리즘' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 기본 (JAVA) (0) | 2023.07.26 |
---|---|
[프로그래머스] 1레벨 몰아풀기 2 (JAVA) (0) | 2023.07.25 |
[프로그래머스] 체육복 (탐욕법) (JAVA) (0) | 2023.07.17 |
[프로그래머스] 실패율 (KAKAO BLIND RECRUITMENT) (JAVA) (1) | 2023.07.13 |
[프로그래머스] 바탕화면 정리 (시뮬레이션) (JAVA) (0) | 2023.06.13 |