📑 1. 문자열 안에 문자열

str1 안에 str2가 포함되어 있는지를 확인하여 조건에 따라 1 또는 2를 반환하는 문제이다.
간단한 메서드로 푼다. `str1.contains(str2)`는 str1 문자열 안에 str2 문자열이 포함되어 있는지를 boolean 값으로 반환한다. 조건문 if로 확인하여 true면 1, 그렇지 않으면 2를 반환한다.
class Solution {
public int solution(String str1, String str2) {
if(str1.contains(str2)) return 1;
else return 2;
}
}
아래는 if-else 대신 삼항 연산자(?:)를 사용한 코드이다.
class Solution {
public int solution(String str1, String str2) {
return str1.contains(str2) ? 1 : 2;
}
}
삼항연산자는 `조건 ? 참일 때 값 : 거짓일 때 값`이다.
str1.contains(str2)가 true면 1을, false면 2를 반환한다.
📑 2. 제곱수 판별

주어진 정수 n이 제곱수인지 판단하여 제곱수이면 1, 아니면 2를 반환하는 문제이다.
주의할 점은 `Math.sqrt(n)`은 n의 제곱근을 double 타입으로 반환하기 때문에 (int)로 변환해야 한다.
int로 변환할 때 소수점 아래를 버리기 때문에, 다시 sqrt * sqrt == n으로 확인한다.
class Solution {
public int solution(int n) {
int sqrt = (int) Math.sqrt(n); //n의 제곱근 구하고 정수로 변환
if(sqrt*sqrt == n) return 1;
else return 2;
}
}
📑 3. 세균 증식

다음은 세균의 초기 개수 n과 경과 시간 t가 주어졌을 때, t시간 후 세균 수를 계산해 반환하는 Java 코드이다.
세균은 1시간마다 2배로 증가한다
따라서 t시간 후의 개수는 n × 2^t 이므로 `Math.pow(2, t)`를 사용해 2의 t제곱을 계산하고, int로 형 변환한다.
마찬가지로 Math.pow(2, t) → double을 반환하기 때문에 int로 형변환이 필요하다.
class Solution {
public int solution(int n, int t) {
return n * (int)Math.pow(2, t);
}
}
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
| [Java] 코딩테스트용 주요 함수/알고리즘 모음 (1) (4) | 2025.05.22 |
|---|---|
| [프로그래머스] (Java) 숫자 찾기 VS 자릿수 더하기 (1) | 2025.05.22 |
| [프로그래머스] (Java) n의 배수 고르기 (2) | 2025.05.20 |
| [프로그래머스] (Java) 숫자 찾기 (숫자를 문자로) (2) | 2025.05.20 |
| [프로그래머스] (Java) 배열의 유사도 (4) | 2025.05.20 |