코딩테스트 입문 > 편지
문제 설명
머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.
제한사항
공백도 하나의 문자로 취급합니다.
1 ≤ message의 길이 ≤ 50
편지지의 여백은 생각하지 않습니다.
message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.
입출력 예
message result
"happy birthday!" 30
"I love you~" 22
입출력 예 #1
message의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다.
입출력 예 #2
message의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다.
class Solution {
public int solution(String message) {
int answer = (message.length()*2);
return answer;
}
}
다른 사람의 풀이
ㅋㅋㅋㅋㅋ이렇게 줄여버리넹 워후
class Solution {
public int solution(String message) {
return message.length()*2;
}
}
코딩테스트 입문 > 머쓱이보다 키가 큰 사람
문제 설명
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
제한사항
1 ≤ array의 길이 ≤ 100
1 ≤ height ≤ 200
1 ≤ array의 원소 ≤ 200
입출력 예
array height result
[149, 180, 192, 170] 167 3
[180, 120, 140] 190 0
입출력 예 설명
입출력 예 #1
149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.
입출력 예 #2
180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.
class Solution {
public int solution(int[] array, int height) {
int answer = 0;
for(int i = 0; i < array.length; i++){
if(height < array[i]){
answer += 1;
}
}
return answer;
}
}
다른 사람의 풀이
좀 더 깔끔
class Solution {
public int solution(int[] array, int height) {
int answer = 0;
for(int i: array){
answer += (i>height) ? 1 : 0;
}
return answer;
}
}
코딩테스트 입문 > 배열 자르기
문제 설명
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
2 ≤ numbers의 길이 ≤ 30
0 ≤ numbers의 원소 ≤ 1,000
0 ≤num1 < num2 < numbers의 길이
입출력 예
numbers num1 num2 result
[1, 2, 3, 4, 5] 1 3 [2, 3, 4]
[1, 3, 5] 1 2 [3, 5]
입출력 예 설명
입출력 예 #1
[1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.
입출력 예 #2
[1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.
다른사람들 보니까 import도 하길래,,나두,,
from <= 범위< to 니까 +1 하기
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] s = Arrays.copyOfRange(numbers,num1,num2+1);
return s;
}
}
다른 사람의 풀이
아깝다,,,,, 거의 비슷해써
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return Arrays.copyOfRange(numbers, num1, num2 + 1);
}
}
코딩테스트입문 > 분수의 덧셈
문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 <numer1, denom1, numer2, denom2 < 1,000
입출력 예
numer1 denom1 numer2 denom2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]
입출력 예 설명
입출력 예 #1
1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
입출력 예 #2
9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = {(numer1 *denom2)+(numer2*denom1) , denom1*denom2};
int min = Math.min(answer[0], answer[1]);
for(int i = 2 ; i<=min;i++){
if(answer[0] % i == 0 && answer[1] % i == 0 ){
answer[0] /= i;
answer[1] /= i;
}
}
return answer;
}
}
죽어도모르겟다..투비컨티뉻,
아 드디어 풀었ㄷㅏㅋㅋㅋㅋㅋㅋㅋㅋㅋ,,,
아무거나 제출하고 답 봤었어서 점수는 안나오지만,,
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = {(numer1 *denom2)+(numer2*denom1) , denom1*denom2};
int min = Math.min(answer[0], answer[1]);
for(int i = min; i >= 2; i--){
if(answer[0] % i == 0 && answer[1] % i == 0 ){
answer[0] /= i;
answer[1] /= i;
}
}
return answer;
}
}
2부터 작은 수까지 더해가면서 나누다보니
2로 한 번 더 나눠지거나 하는 수 들이 있었나보다!
ㅎㅎㅎㅎㅎㅎㅋ ㅎㅎㅎㅎ
약분 할 때 다 안되면 마지막에 2로 나누는건데 바보,,ㅎㅎㅎ
'Chapter02 > 코딩테스트' 카테고리의 다른 글
[고딩데스드] 프로그래머스 코딩 기초 트레이닝 > 문자열 섞기 , 분수의 덧셈 , 중앙값 구하기 (0) | 2023.10.30 |
---|---|
[고딩데스드] Lv.0 여러개 (0) | 2023.10.23 |
[고딩데스드] 비밀지도도움말 (1) | 2023.10.16 |
[고딩데스드] Summer/Winter Coding(~2018) > 예산 (1) | 2023.10.11 |
[고딩데스드] 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천 (1) | 2023.10.10 |