일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 스택
- 새벽코딩
- 다리 만들기
- Python
- 배열
- 브루트포스
- dfs
- 백트래킹
- 그리디
- Queue
- SQL
- 완전탐색
- BufferedReader
- 빅데이터
- 탐색
- DP
- 구현
- LIS
- HashMap
- Java
- 프로그래머스
- oracle
- 문자열
- 시뮬레이션
- Stack
- BFS
- 다이나믹프로그래밍
- 백준
- 아스키코드
- Today
- Total
새벽코딩
[프로그래머스] 1레벨 몰아풀기 2 (JAVA) 본문
1. 제일 작은 수 제거하기
https://school.programmers.co.kr/learn/courses/30/lessons/12935
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA 코드 (제일 작은 수 제거하기)
import java.io.*;
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int len = arr.length - 1;
int[] answer = new int[1];
List<Integer> lst = new ArrayList<>();
int minVal = arr[0];
for(int i = 1; i <= len; i++) {
minVal = minVal > arr[i] ? arr[i] : minVal;
}
for(int i = 0; i <= len; i++) {
if(arr[i] != minVal) {
lst.add(arr[i]);
}
}
if(lst.size() == 0) {
answer[0] = -1;
} else {
answer = lst.stream().mapToInt(i -> i).toArray();
}
return answer;
}
}
※ 생각정리 (제일 작은 수 제거하기)
문제풀기전 알아야할 것
1. 해당 배열에는 동일한 숫자는 없다.
2. 배열크기는 1이상이며 1개일경우 제일 작은 수를 제거하면 아무것도 남지 않는다.
문제풀기
1. 해당 배열에서 가장 작은 수를 담는다.
2. 배열 인덱스 0부터 끝까지 반복하며 리스트에 값들을 담고 가장 작은 수가 있을 때 스킵한다.
정렬을 사용하지 않는 것이 중요하다.
2. 가운데 글자 가져오기
https://school.programmers.co.kr/learn/courses/30/lessons/12903
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA 코드 (가운데 글자 가져오기)
class Solution {
public String solution(String s) {
String answer = "";
int len = s.length();
if(len % 2 != 0) {
answer += s.charAt(len / 2);
} else {
answer += String.valueOf(s.charAt(len / 2 - 1)) + String.valueOf(s.charAt(len / 2));
}
return answer;
}
}
※ 생각정리 (가운데 글자 가져오기)
1. 홀수일때 문자열의 가운데
2. 짝수일때 문자열의 가운데 문자 두개를 합한다. (이 부분에서 String.valueOf()를 사용하지 않으면 문자가 아닌 정수형으로 변형된다)
3. 수박수박수박수박수박수?
https://school.programmers.co.kr/learn/courses/30/lessons/12922
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
※ JAVA 코드 (수박수박수박수박수박수?)
import java.io.*;
class Solution {
public String solution(int n) {
StringBuilder sb = new StringBuilder();
String pattern = "수박";
int mok = n / 2;
int na = n % 2;
for(int i = 1; i <= mok; i++) {
sb.append(pattern);
}
for(int i = 1; i <= na; i++) {
sb.append(pattern.charAt(0));
}
String answer = sb.toString();
return answer;
}
}
※ 생각정리 (수박수박수박수박수박수?)
입력받은 숫자를 2로 나눈 몫과 나머지를 이용하여 쉽게 풀 수 있는 문제이다.
2로 나누어 몫의 개수만큼 "수박"을 더하고, 2로 나눈 나머지가 있다면 "수"를 마지막에 더해준다.
-새벽코딩-
'알고리즘' 카테고리의 다른 글
[프로그래머스] 최댓값과 최솟값 (JAVA) (level2) (0) | 2023.07.26 |
---|---|
[프로그래머스] 문자열 다루기 기본 (JAVA) (0) | 2023.07.26 |
[프로그래머스] 1레벨 몰아풀기 (JAVA) (0) | 2023.07.18 |
[프로그래머스] 체육복 (탐욕법) (JAVA) (0) | 2023.07.17 |
[프로그래머스] 실패율 (KAKAO BLIND RECRUITMENT) (JAVA) (1) | 2023.07.13 |