
프로그래머스 코딩테스트 입문 Java로 Day 13 문자열, 배열, 사칙연산, 수학, 조건문
숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
제한사항
s의 길이 ≤ 200s의 원소 중 숫자 < 1,000s는 숫자, "Z", 공백으로 이루어져 있습니다.s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다.s는 "Z"로 시작하지 않습니다.s의 시작과 끝에는 공백이 없습니다.입출력 예
| s | result |
|---|---|
| "1 2 Z 3" | 4 |
| "10 20 30 40" | 100 |
| "10 Z 20 Z 1" | 1 |
| "10 Z 20 Z" | 0 |
| "-1 -2 -3 Z" | -3 |
class Solution {
public int solution(String s) {
int answer = 0;
String[] arr = s.split("\\s");
int sum = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals("Z")) sum -= Integer.parseInt(arr[i-1]);
else sum += Integer.parseInt(arr[i]);
}
answer = sum;
return answer;
}
}
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
제한사항
strlist 원소의 길이 ≤ 100strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.입출력 예
| strlist | result |
|---|---|
| ["We", "are", "the", "world!"] | [2, 3, 3, 6] |
| ["I", "Love", "Programmers."] | [1, 4, 12] |
import java.util.*;
class Solution {
public int[] solution(String[] strlist) {
int[] answer = new int[strlist.length];
for (int i = 0; i < strlist.length; i++) {
answer[i] = strlist[i].length();
}
return answer;
}
}
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
my_string ≤ 110my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.입출력 예
| my_string | result |
|---|---|
| "people" | "peol" |
| "We are the world" | "We arthwold" |
class Solution {
public String solution(String my_string) {
String answer = "";
for (int i = 0; i < my_string.length(); i++) {
if (my_string.indexOf(my_string.charAt(i)) == i) answer += my_string.charAt(i);
}
return answer;
}
}
indexOf(): 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며 만약 찾지 못했을 경우 “-1”을 반환함.
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
sides의 원소는 자연수입니다.sides의 길이는 3입니다.sides의 원소 ≤ 1,000입출력 예
| sides | result |
|---|---|
| [1, 2, 3] | 2 |
| [3, 6, 2] | 2 |
| [199, 72, 222] | 1 |
import java.util.*;
class Solution {
public int solution(int[] sides) {
int answer = 0, max = 0, sum = 0;
Arrays.sort(sides);
if (sides[2] >= sides[0] + sides[1]) answer = 2;
else answer = 1;
return answer;
}
}
1) 문제를 풀 때 조금은 쉽게 생각해도 될 것 같다. 계속 복잡하게 생각하려니깐 코드도 꼬이는 듯 하다.
2) 기록표
