0단계 11

OX퀴즈_programmers_lev00

[문제 설명] 덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해 주세요. [제한사항] 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다. 1 ≤ quiz의 길이 ≤ 10 X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다. X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다. -10,000 ≤ X, Y ≤ 10,000 -20,000 ≤ Z ≤ 20,0..

문자열 밀기_programmers_lev00

문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 몇 번 밀어야 하는지 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 우선 예시를 apple로 했을 때, A 는 hello B 는 ohello 만약 B를 두번 반복하게 된다면 ohelloohello 입니다. 이때 ohelloohello 인덱스 중 A가 없다면 -1 return 하도록 코딩하였습니다. indexOf("찾는문자") 찾는 문자를 (" ") 안에 추가 class Solution { public int so..

잘라서 배열로 저장하기_programmers_lev00

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. 처음에 오류난 코드 중, 길이 설정을 String[] answer = new String[my_str.length()%n]; 이렇게 하고 substring을 이용할때에도 answer[i] = my_str.substring(i, n); 으로 설정했었습니다. 이렇게 설정을 하니, 출력 될때 자꾸만 잘리는것이 ["abc1Ad", "bc1Ad", "c1Ad"] 이렇게 나왔었습니다. 이를 해결하기 위해서 startIndex 와 endIndex를 지정해주었습니다. startIndex += n; 인덱스를 자를 시점은 내가 원하는 길이인 n개만큼 더한 수를 자르도록 지..

공 던지기_programmers_lev00

머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 제한사항 2

숨어있는 숫자의 덧셈 (2)_programmers_lev00

문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 우선 지난번 풀이하였던 숨어있는 숫자의 덧셈 (1) 과는 다르게 영어를 전부 [a-zA-Z] 으로 저거 하였으며, 여기서 중요한 점은 숫자가 하나씩 떨어지지 않게 하기 위해서 지우는 영문자를 " " 공백을 두어 띄어서 제거하였습니다. 이때 split 메서드도 동일한 공백으로 나누어 주었습니다. 향상된 for 문을 이용하여 만약 "" 하나의 공백과 같지 않다면 answer에 숫자를 하나씩 더해주도록 Integer.parseInt를 사용하였습니다. class Solution { public int so..

진료 순서 정하기_programmers_lev00

외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. 우선 배열 두개를 생각했습니다. 정답을 답을 배열 하나, copy를 하고 sort를 한 배교 배열 하나. 비교 배열 copy를 sort로 정렬 후, emergency의 배열의 개수 를 해당 배열의 인덱스를 빼주어 큰수가 먼저 answer 배열에 담길 수 있도록 코딩하였습니다. import java.util.Arrays; class Solution { public int[] solution(int[] emergency) { int[] answer = new int[em..

7의 개수_programmers_lev00

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 이번 문제는 간단하게 코딩하였습니다. int형의 배열을 하나하나 쪼개어 String 배열로 담은 후, 7의 문자와 같다면 answer++을 해주었습니다. class Solution { public int solution(int[] array) { int answer = 0; String str =""; for (int i = 0; i < array.length; i++) { str+=array[i]; } String[] strArr = str.split(""); for (int i = 0; i < strArr.length; i++) {..

한 번만 등장한 문자_programmers_lev00

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. *0 < s의 길이 < 1,000 *s는 소문자로만 이루어져 있습니다. 간단하게 split 메서드를 활용하여 String 배열에 담은 후, 바로 Arrays.sort를 사용하여 순차적으로 return이 되도록 하였습니다. 그 후 StringBuilder를 통해서 최대한 가비지가 생기지 않도록 구현하였고, 만약 같은 문자열의 index가 동일하다면 1개만 있는 문자열이기때문에 문자열의 인덱스 번호를 비교하여 answer에 return 하도록 코딩하였습니다. import java.uti..

A로 B 만들기_programmers_lev00

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. 처음에 문제를 풀었을때는 단순히 문자의 배열만 바꿔서 비교하였지만, 사실상, before에 주어지는 문자열과 after에 주어지는 문자열 하나하나가 모두 동일하다면 같은 문자를 만들 수 있다는 것을 생각하였고, 각각의 문자열을 배열에 저장 후, sort 해준 뒤 String 배열이 아닌 String 문자로 비교 한 값을 return 하도록 코딩하였습니다. import java.util.Arrays; class Solution { public int solution(String before, String af..

모스 부호 (1)_programmers_lev00

모스부호 (1) 머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 모스부호는 다음과 같습니다. morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...