1️⃣ 문자열 안에 문자열
문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
입출력 예
str1 | str2 | result |
"ab6CDE443fgh22iJKlmn1o" | "6CD" | 1 |
"ppprrrogrammers" | "pppp" | 2 |
"AbcAbcA" | "AAA" | 2 |
- 입출력 예 #1
- "ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
- "ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
- "AbcAbcA" str1에 str2가 없으므로 2를 return합니다.
💻 나의 풀이
class Solution {
public int solution(String str1, String str2) {
if(str1.contains(str2)){
return 1;
} else {
return 2;
}
}
}
contains() 메소드로 간단하게 해결해줬습니다.
🔎 다른 사람의 풀이
class Solution {
public int solution(String str1, String str2) {
return (str1.contains(str2)? 1: 2);
}
}
삼항연산자를 사용하면 더 간단하네요.
2️⃣ 제곱수 판별하기
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
입출력 예
n | result |
144 | 1 |
976 | 2 |
입출력 예 #1
- 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
- 976은 제곱수가 아닙니다. 따라서 2를 return합니다.
💻 나의 풀이
class Solution {
public int solution(int n) {
if (Math.sqrt(n)%1 == 0){
return 1;
} else {
return 2;
}
}
}
제곱수를 어떻게 구할 수 있을까 고민했는데 Math클래스에 제곱근을 구하는 sqrt메소드가 있더라구요!
제곱수일 경우에는 제곱근을 구했을 때 소수 자리가 남지 않습니다.
그러므로 1로 나눈 나머지가 0이 됩니다.
3️⃣ 세균 증식
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
입출력 예
n | t | result |
2 | 10 | 2048 |
7 | 15 | 229,376 |
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
💻 나의 풀이
class Solution {
public int solution(int n, int t) {
int answer = n;
for(int i=1; i<=t; i++){
answer *= 2;
}
return answer;
}
}
크게 고민하지 않고 t시간 만큼 2를 곱해주면 되겠다고 생각했습니다.
answer를 n (처음 세균의 마리수) 으로 초기화 시켜준 후, for문으로 t시간만큼 돌며 1부터 t까지 2씩 곱해줍니다.
🔎 다른 사람의 풀이
class Solution {
public int solution(int n, int t) {
int answer = 0;
answer = n << t;
return answer;
}
}
비트연산으로 한칸씩 밀면 2를 곱한 것과 같으니까 t만큼 밀어주면 정답이 나온다고 합니다.
4️⃣ 문자열 정렬하기(2)
문제 설명
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < my_string 길이 < 100
입출력 예
my_string | result |
"Bcad" | "abcd" |
"heLLo" | "ehllo" |
입출력 예 #1
- "Bcad"를 모두 소문자로 바꾸면 "bcad"이고 이를 알파벳 순으로 정렬하면 "abcd"입니다.
입출력 예 #2
- "heLLo"를 모두 소문자로 바꾸면 "hello"이고 이를 알파벳 순으로 정렬하면 "ehllo"입니다.
💻 나의 풀이
import java.util.Arrays;
class Solution {
public String solution(String my_string) {
my_string = my_string.toLowerCase();
char[] str = my_string.toCharArray();
Arrays.sort(str);
String answer = new String(str);
return answer;
}
}
먼저 toLowerCase() 메소드를 통해 소문자로 변환해준 후, 문자열을 char 배열로 변환해서 Arrays.sort() 메소드를 통해 정렬해줬습니다.
최종적으로 이 배열을 문자열로 만들어서 반환해줍니다.
🔎 다른 사람의 풀이
import java.util.*;
class Solution {
public String solution(String my_string) {
char[] c = my_string.toLowerCase().toCharArray();
Arrays.sort(c);
return new String(c);
}
}
메소드를 이어서 작성해주고
반환도 한꺼번에 해서 더 간단하게 해결할 수 있습니다.
DAY18은 17보다 꽤나 쉬웠던 느낌이라 금방 해결했네요...!
'프로그래머스 > 0단계' 카테고리의 다른 글
DAY20 수학, 시뮬레이션, 문자열, 사칙연산 (1) | 2023.12.08 |
---|---|
DAY19 문자열, 배열, 조건문 (1) | 2023.12.07 |
DAY17 문자열, 수학, 조건문, 배열, 사칙연산 (2) | 2023.12.05 |
DAY16 문자열, 수학, 배열, 조건문 (0) | 2023.12.04 |
DAY15 문자열, 해시, 배열, 수학 (1) | 2023.12.02 |
1️⃣ 문자열 안에 문자열
문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
입출력 예
str1 | str2 | result |
"ab6CDE443fgh22iJKlmn1o" | "6CD" | 1 |
"ppprrrogrammers" | "pppp" | 2 |
"AbcAbcA" | "AAA" | 2 |
- 입출력 예 #1
- "ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
- "ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
- "AbcAbcA" str1에 str2가 없으므로 2를 return합니다.
💻 나의 풀이
class Solution {
public int solution(String str1, String str2) {
if(str1.contains(str2)){
return 1;
} else {
return 2;
}
}
}
contains() 메소드로 간단하게 해결해줬습니다.
🔎 다른 사람의 풀이
class Solution {
public int solution(String str1, String str2) {
return (str1.contains(str2)? 1: 2);
}
}
삼항연산자를 사용하면 더 간단하네요.
2️⃣ 제곱수 판별하기
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
입출력 예
n | result |
144 | 1 |
976 | 2 |
입출력 예 #1
- 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
- 976은 제곱수가 아닙니다. 따라서 2를 return합니다.
💻 나의 풀이
class Solution {
public int solution(int n) {
if (Math.sqrt(n)%1 == 0){
return 1;
} else {
return 2;
}
}
}
제곱수를 어떻게 구할 수 있을까 고민했는데 Math클래스에 제곱근을 구하는 sqrt메소드가 있더라구요!
제곱수일 경우에는 제곱근을 구했을 때 소수 자리가 남지 않습니다.
그러므로 1로 나눈 나머지가 0이 됩니다.
3️⃣ 세균 증식
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
입출력 예
n | t | result |
2 | 10 | 2048 |
7 | 15 | 229,376 |
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
💻 나의 풀이
class Solution {
public int solution(int n, int t) {
int answer = n;
for(int i=1; i<=t; i++){
answer *= 2;
}
return answer;
}
}
크게 고민하지 않고 t시간 만큼 2를 곱해주면 되겠다고 생각했습니다.
answer를 n (처음 세균의 마리수) 으로 초기화 시켜준 후, for문으로 t시간만큼 돌며 1부터 t까지 2씩 곱해줍니다.
🔎 다른 사람의 풀이
class Solution {
public int solution(int n, int t) {
int answer = 0;
answer = n << t;
return answer;
}
}
비트연산으로 한칸씩 밀면 2를 곱한 것과 같으니까 t만큼 밀어주면 정답이 나온다고 합니다.
4️⃣ 문자열 정렬하기(2)
문제 설명
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < my_string 길이 < 100
입출력 예
my_string | result |
"Bcad" | "abcd" |
"heLLo" | "ehllo" |
입출력 예 #1
- "Bcad"를 모두 소문자로 바꾸면 "bcad"이고 이를 알파벳 순으로 정렬하면 "abcd"입니다.
입출력 예 #2
- "heLLo"를 모두 소문자로 바꾸면 "hello"이고 이를 알파벳 순으로 정렬하면 "ehllo"입니다.
💻 나의 풀이
import java.util.Arrays;
class Solution {
public String solution(String my_string) {
my_string = my_string.toLowerCase();
char[] str = my_string.toCharArray();
Arrays.sort(str);
String answer = new String(str);
return answer;
}
}
먼저 toLowerCase() 메소드를 통해 소문자로 변환해준 후, 문자열을 char 배열로 변환해서 Arrays.sort() 메소드를 통해 정렬해줬습니다.
최종적으로 이 배열을 문자열로 만들어서 반환해줍니다.
🔎 다른 사람의 풀이
import java.util.*;
class Solution {
public String solution(String my_string) {
char[] c = my_string.toLowerCase().toCharArray();
Arrays.sort(c);
return new String(c);
}
}
메소드를 이어서 작성해주고
반환도 한꺼번에 해서 더 간단하게 해결할 수 있습니다.
DAY18은 17보다 꽤나 쉬웠던 느낌이라 금방 해결했네요...!
'프로그래머스 > 0단계' 카테고리의 다른 글
DAY20 수학, 시뮬레이션, 문자열, 사칙연산 (1) | 2023.12.08 |
---|---|
DAY19 문자열, 배열, 조건문 (1) | 2023.12.07 |
DAY17 문자열, 수학, 조건문, 배열, 사칙연산 (2) | 2023.12.05 |
DAY16 문자열, 수학, 배열, 조건문 (0) | 2023.12.04 |
DAY15 문자열, 해시, 배열, 수학 (1) | 2023.12.02 |