1. 수 조작하기 1
class Solution {
public int solution(int n, String control) {
for (int i = 0; i < control.length(); i++) {
switch (control.charAt(i)) {
case 'w':
n += 1;
break;
case 's':
n -= 1;
break;
case 'd':
n += 10;
break;
case 'a':
n -= 10;
break;
}
}
return n;
}
}
/////////////////////////////////////////////////////////
class Solution {
public int solution(int n, String control) {
int answer = 0;
for (int i = 0; i <control.length() ; i++) {
char c = control.charAt(i);
if(c == 'w'){
n += 1;
} else if(c == 's'){
n -= 1;
} else if(c == 'd'){
n += 10;
} else if(c == 'a'){
n -= 10;
}
}
answer = n;
return answer;
}
}
class Solution {
public String solution(String[] str_list, String ex) {
String answer = "";
for(int i = 0; i < str_list.length; i++) {
if(!str_list[i].contains(ex)) {
answer+=str_list[i];
}
}
return answer;
}
}
charAt(i)는 문자열(string)에서 특정 위치(i)의 문자(char)를 가져오는 메서드
charAt은 언제 써야할까?
1. 문자열에서 개별 문자(char)를 하나씩 확인해야할 때
2. 조건문에서 특정 문자와 비교할 때
3. 스위치문에서 문자 비교할 때
주의 사항
char c = 'a'; // 문자 (홑따옴표 사용)
String s = "a"; // 문자열 (쌍따옴표 사용)
2. 마지막 두 원소 <- 다시 생각해서 다시 풀기
add를 하고 작성하고 싶으면 import 추가! arrayLiST 추
import java.util.ArrayList;
class Solution {
public int[] solution(int[] num_list) {
ArrayList<Integer> answerList = new ArrayList<>();
// answerList에 num_list 원소 값들 추가
for(int num: num_list) {
answerList.add(num);
}
int[] answer = {};
int lastNum = 0; // 마지막 원소값들 계산할 빈값
for(int i = 0; i < num_list.length; i++) {
for(int j = i; j< num_list.length; j++) {
if(i < j) {
lastNum = j - i;
answerList.add(lastNum);
return answerList;
} else if (i > j) {
lastNum= j*2;
answerList.add(lastNum);
return answerList;
}
}
}
private int[] convertListToArray(ArrayList<Integer> list) {
int[] array = new int[list.size()] ;
for(int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
return array;
}
}
}
3. 원소들의 곱과 합
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int multiplyNum = 1;
int plusNum = 0;
for(int i =0; i < num_list.length; i++) {
multiplyNum *= num_list[i];
plusNum += num_list[i];
}
if(multiplyNum > plusNum*plusNum)
return 0;
else
return 1;
}
}
4. 문자 리스트를 문자열로 변환하기
class Solution {
public String solution(String[] arr) {
String answer = "";
for(int i =0; i < arr.length; i++) {
answer+=arr[i];
}
return answer;
}
}
처음에는 return Arrays.toString(arr)로 했더니 반환값이 [a,b,c]나왔다. <- 잘못된 값..한줄로 끝내기 실패..
그러면 언제 toString을 써야되냐?
새String은 배열의 원소를 문자열로 반환하는데 사용
배열을 toString()으로 호출하면 배열의 원소들이 문자열로 합쳐진 상태가 아닌, 배열 객체에 대한 정보가 들어간 문자열로 반환된다.
만일 배열의 원소들을 연결하여 하나의 문자열로 만드려면 string.join()을 사용하면 된다.
자바의 경우 string.join("", arr); ,arr을 적어야한다.
5. 문자열 되될리기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next(); // 문자열 입력받고
String[] arr = a.split(""); // 문자열 split 통해 나눠주고
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); // 하나씩 출력하기
}
}
}
///////////////////////////////////////////////////
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
for(int i=0; i<a.length(); i++){
System.out.println(a.charAt(i)); // charAt을 통해 출력하기!
}
}
}
6. I로 만들기
class Solution {
public String solution(String myString) {
String answer = "";
return answer = myString.replaceAll("[a-k]", "l");
}
}
.replaceAll -> 정규식을 사용해야한다.
만일 정규식을 안사용하고 싶으면 replace() 사용하기
7. 간단한 식 계산하기
8. 주사위 게임 1
class Solution {
public int solution(int a, int b) {
if (a % 2 == 1 && b % 2 == 1) { // 둘 다 홀수일 때
return a * a + b * b;
} else if ((a % 2 == 1 && b % 2 == 0) || (a % 2 == 0 && b % 2 == 1)) { // 하나만 홀수일 때
return 2 * (a + b);
} else { // 둘 다 짝수일 때
return Math.abs(a - b);
}
}
}
Math.abs -> 절대값 구하기
10. 조건에 맞게 수열 변환하기 3
class Solution {
public int[] solution(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] < 50) {
if (arr[i] % 2 == 1) {
arr[i] = arr[i] * 2;
}
} else if(arr[i] % 2 == 0 && arr[i] >= 50){
arr[i] = arr[i] / 2;
}
}
return arr;
}
}
11. 9로 나눈 나머지
class Solution {
public int solution(String number) {
int answer = 0;
String[] newNumber = number.split("");
for(int i = 0; i < number.length(); i++) {
answer+=Integer.parseInt(newNumber[i]);
}
return answer % 9;
}
}
String[] newNumber에서는 new를 사용안했다. 그 이유는? split("")이 자동으로 String[] 배열을 반환하므로 new를 사용할 필요x
12. 덧셈식 출력하기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + " + " + b + " = " + (a + b));
}
}
13. 배열의 원소 삭제하기
14. 공백으로 구분하기 1
class Solution {
public String[] solution(String my_string) {
return my_string.split(" ");
}
}
split(" ") -> 공백 기준으로 나뉜다.
15. 부분 문자열
// Java
class Solution {
public int solution(String str1, String str2) {
if(str2.contains(str1)) {
return 1;
} else {
return 0;
}
}
}
/////////////////////////
//JS
function solution(str1, str2) {
if(str2.includes(str1)) {
return 1;
} else {
return 0;
}
}
자바에서 문자열이 포함되어 있는지 확인하고 싶을때는 contains() 메서드를 사용해야한다.
16. 꼬리 문자열
// JS
function solution(str_list, ex) {
var answer = '';
for(let i = 0; i < str_list.length; i++) {
if(!str_list[i].includes(ex)) {
answer+=str_list[i];
}
}
return answer;
}
// Java
class Solution {
public String solution(String[] str_list, String ex) {
String answer = "";
for(int i = 0; i < str_list.length; i++) {
if(!str_list[i].contains(ex)) {
answer+=str_list[i];
}
}
return answer;
}
}
자바 문자열 헷갈린다.. 난 헷갈려..
str_list는 배열이다. 그래서 .length()이게 아닌 .length;으로 사용해야한다.
참고로 문자열에서 비교를 할때는 == 이게 아닌 equlas()를 사용해야한다.
.length()이 사용이 안되는 이유는? 위 코드의 문자에서는 문자열 배열을 의미함으로 문자열이..즉.. 아니므로.. 배열이기에.. length;을 사용
결론.. length()는 문자열 길이, .lenth;는 배열의 크기
17. x 사이의 개수
18. 0떼기
19. 부분 문자열인지 확인하기
class Solution {
public int solution(String my_string, String target) {
if(my_string.contains(target)) {
return 1;
} else {
return 0;
}
}
}
contains는 문자열 배열 String[]에서는 사용 불가
문자열 배열(String[])에서 특정 요소 포함 여부를 확인하기 위해 Arrays.asList().contains() 사용
20. 정수 찾기
21. 주사위 게임 2
class Solution {
public int solution(int a, int b, int c) {
if(a != b && b!= c && c!= a) {
return a+b+c;
} else if(a == b && b== c && c == a) {
return (a+b+c)*((a*a)+(b*b)+(c*c))*((a*a*a)+(b*b*b)+(c*c*c));
} else {
return (a+b+c)*((a*a)+(b*b)+(c*c));
}
}
}
주사위 게임 1 응용
22. 뒤에서 5등 위로
23. 특별한 이차원 배열 2
24. 특별한 이차원 배열 1
25. 홀짝 구분하기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n%2 == 0) {
System.out.println(n + " is even");
} else {
System.out.println(n + " is odd");
}
}
}
26. 문자열 곱하기
class Solution {
public String solution(String my_string, int k) {
return my_string.repeat(k);
}
}
//////////////////////////////////////////////////////////
class Solution {
public String solution(String my_string, int k) {
StringBuilder sb = new StringBuilder();
for(int i =0; i < k; i++) {
sb.append(my_string);
}
return sb.toString();
}
}
/////////////////////////////////////////////////////////
class Solution {
public String solution(String my_string, int k) {
String answer = "";
for (int i = 0; i < k; i++) {
answer += my_string;
}
return answer;
}
}
repeat()을 이용한 문자열 반복
27. 문자열로 변환
// Java
class Solution {
public String solution(int n) {
return Integer.toString(n);
}
}
////////////////////////////////////////
// JS
function solution(n) {
return n.toString();
}
문자열 → 숫자 변환 방법
Integer.parseInt();
Integer.valueOf();
숫자 → 문자열 변환 방법
Integer.parseInt();
String.valueOf();
28. n의 배수
class Solution {
public int solution(int num, int n) {
if(num % n == 0) {
return 1;
} else {
return 0;
}
}
}
29. 두 수의 연산값 비교하기
30. 공배수
class Solution {
public int solution(int number, int n, int m) {
if(number % n == 0 && number % m == 0 ) {
return 1;
} else {
return 0;
}
}
}
'💡 URECA > ⌨️ 프로그래머스' 카테고리의 다른 글
[URECA] 프로그래머스 | 기초 | 자바 <- 업로드 중 (1) | 2025.02.19 |
---|---|
[URECA] 프로그래머스 | 기초 | Java <- 업로드 중 (0) | 2025.02.18 |
[URECA] 프로그래머스 | 입문 | JS (0) | 2025.02.17 |
[URECA] 프로그래머스 | 기초 | Java (0) | 2025.02.14 |
[URECA] 프로그래머스 | 입문 | JS (0) | 2025.02.13 |