7. 문자열 내 마음대로 정렬하기
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
List<String> list = new ArrayList<>();
for(int i=0; i<strings.length; i++){
list.add(strings[i].charAt(n) + strings[i]);
}
Collections.sort(list);
answer = new String[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i).substring(1, list.get(i).length());
}
return answer;
}
}
<작성한 코드>
list를 하나 만들어줬다. 그 뒤 for문을 사용해서 list에 값을 넣어줬다. string [i]. charAt(n)과 strings [i]를 넣어줬는데 첫 번째 값은 n번째 원소가 될 거고 그 뒤값은 string [i]의 문자열이 될 것이다. 그래서 각 n번째 자리의 원소값이 문자열들의 제일 앞에 들어온다. 그 뒤 list를 Collections.sort를 사용해서 오름차순으로 정렬시켜 준다. 그 뒤 answer에 list의 길이만큼 배열을 만들어주고 for문을 사용해서 list.get(i)의 첫 번째 원소를 제외한 두 번째 값부터 마지막값까지 넣어주고 반환하면 된다.
8. 문자열 내 p와 y의 개수
class Solution {
boolean solution(String s) {
boolean answer = true;
int p = 0, y = 0;
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == 'p' || s.charAt(i) == 'P'){
p++;
} else if(s.charAt(i) == 'y' || s.charAt(i) == 'Y'){
y++;
}
}
if(p != y) answer = false;
return answer;
}
}
<작성한 코드>
간단한 문제였다. for문 속에서 if문을 사용해서 p와 P일때는 p의 값을 증가시켰고, y와 Y일 때는 y의 값을 증가시켰다. for문이 끝난 뒤 if문을 사용해서 p와 y값을 비교해서 다르다면 answer에 false를 넣어주고, 아니라면 처음에 초기화했던 true가 그대로 반환될 것이다.
9. 문자열 내림차순으로 배치하기
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
char[] ch = s.toCharArray();
Arrays.sort(ch);
for(int i=ch.length-1; i>=0; i--){
answer += ch[i];
}
return answer;
}
}
<작성한 코드>
간단한 문제였다. 문자열 s를 char형으로 변환시켜 배열로 저장한 뒤 Arrays.sort를 사용해서 오름차순으로 정렬했다. 그 뒤 for문을 사용해서 문자열의 끝부터 처음까지 역순으로 answer에 저장해 주고 반환하였다.
10. 문자열 다루기 기본
class Solution {
public boolean solution(String s) {
boolean answer = true;
if(!(s.length() == 4 || s.length() == 6)) answer = false;
for(int i=0; i<s.length(); i++){
char ch = s.charAt(i);
if((ch >= 'a' && ch <= 'z') || (ch>= 'Z' && ch<= 'Z')){
return false;
}
}
return answer;
}
}
<작성한 코드>
간단한 문제였다. s의 길이가 4나 6이 아니라면 answer를 false로 하였고, 숫자가 포함되어 있는지 체크하기 위해 for문을 사용해서 원소 하나하나를 비교해 줬다. a ~ A, z ~ Z가 들어간다면 false를 반환하였다.
11. 서울에서 김서방 찾기
class Solution {
public String solution(String[] seoul) {
String answer = "";
int num = 0;
for(int i=0; i<seoul.length; i++){
if(seoul[i].equals("Kim")){
num = i;
break;
}
}
answer = "김서방은 "+ num +"에 있다";
return answer;
}
}
<작성한 코드>
간단한 문제였다. for문으로 원소들과 비교를 해서 Kim과 같은 문자열이 있으면 변수 num에 i를 넣어주고 for문을 멈춘다. 그 뒤 answer에 "김서방은" + num + "에 있다"를 넣어주고 반환하였다.
12. 소수 찾기
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=2; i<=n; i++){
int cnt = 0;
for(int j=2; j*j<=i; j++){
if(i%j == 0) {
cnt++;
break;
}
}
if(cnt == 0){
answer ++;
}
}
return answer;
}
}
<작성한 코드>
소수를 찾으면 되는 문제다. 중첩 for문을 사용해서 i는 2부터 n까지 반복해 주고 내부의 for문에서는 j는 2부터 j*j까지 반복해 줬다. j*j를 사용한 이유는 소수가 아니라면 그 수의 약수중 최솟값은 제곱근보다 작거나 같아야 하기 때문에 j를 i까지 돌리지 않고 j*j까지만 반복했다. 그 뒤 약수가 0개라면 answer에 1을 더해주고 answer을 반환했다.
13. 수박수박수박수박수박수?
class Solution {
public String solution(int n) {
String answer = "";
for(int i=0; i<n; i++){
if(i%2 == 0){
answer += "수";
} else{
answer += "박";
}
}
return answer;
}
}
<작성한 코드>
간단한 문제다. for문을 사용해서 차례대로 수, 박을 넣어주고 answer을 반환했다.
14. 문자열을 정수로 바꾸기
class Solution {
public int solution(String s) {
int answer = 0;
answer = Integer.parseInt(s);
return answer;
}
}
<작성한 코드>
간단한 문제다. s를 정수형으로 변환해서 answer에 대입하고 반환해 주면 된다.
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 1 (22~29번 문제풀이) / Level 0 (224/224) (1) | 2023.10.26 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 1 (15~21번 문제풀이) / Level 0 (224/224) (0) | 2023.10.25 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 1 (1~6번 문제풀이) / Level 0 (224/224) (0) | 2023.10.23 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (215~224번 문제풀이) - 0단계 모든 문제풀이 완료 (0) | 2023.10.20 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (206~214번 문제풀이) (1) | 2023.10.20 |
남건욱's 공부기록