프로그래머스 코딩테스트 연습 Lv.0 '문자열안에 문자열' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120908
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✏️ 문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
< 제한사항 >
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
※ 아래 입출력 예시를 참고하세요!
⚠️ 입출력 예시
예시 1
str1 ▼
"ab6CDE443fgh22iJKlmn1o"
str2 ▼
"6CD"
1
//"ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
예시 2
str1 ▼
"ppprrrogrammers"
str2 ▼
"pppp"
"ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
🔍 알고리즘 구상
- str1 안에 str2 부분이 있다면 replace()를 이용해 str2를 특정한 문자로 변환 후
- str1에 특정한 문자가 있다면 1로, 없다면 2로 리턴한다
✏️ 직접 구현한 코드
class Solution {
public int solution(String str1, String str2) {
int answer = 2;
String res = str1.replace(str2,"*");
for(int i = 0; i < res.length(); i++) {
if(res.charAt(i)=='*')
answer = 1;
}
return answer;
}
}
🗣️ 코드 설명
- 초기값을 2로 설정한 answer 생성한다
- replace()를 이용해, str1에 있는 str2부분을 *문자로 변환한 후 res에 저장한다
- 0부터 문자열 res의 길이보다 작을 때까지 증가하는 i를 인덱스 변수로 가진 for문을 만든다
- for문의 if문에서는, charAt()을 이용해 res의 한 글자씩 자른 뒤 *문자와 비교해서 *와 같은 문자가 있으면 answer의 값을 1로 변환한다
🔥 다른 코드와 비교
class Solution {
public int solution(String str1, String str2) {
return (str1.contains(str2)? 1: 2);
}
}
이 분은 삼항 연산자와 contains()를 사용해 한 줄로 코드를 구현했습니다.
⭐ 기억하고 넘어갈
- contains()
https://codingismylife.tistory.com/68
[JAVA] 메서드 - contains()
🤔 어떤 메서드일까? contains()는 대상 문자열에 특정 문자열이 포함되어 있는지 boolean값으로 판별하는 메서드 입니다. 대상 문자열.contains(포함되어 있는지 판별할 특정 문자열) 대소문자를 구분
codingismylife.tistory.com
- replace()
https://codingismylife.tistory.com/56
[JAVA] 메서드 - replace(), replaceAll()
🤔 어떤 메서드일까? replace() 와 replaceAll() 메서드는 문자열의 특정 문자를 원하는 문자로 변환하는 메서드입니다. replace() replace(CharSequence target, CharSequence replacement) 첫 번째 매개변수는 변환하고
codingismylife.tistory.com
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - A 강조하기 (0) | 2023.05.02 |
---|---|
[JAVA] 프로그래머스 - 옹알이(1) (0) | 2023.04.05 |
[JAVA] 메서드 - contains() (0) | 2023.04.05 |
[JAVA] 프로그래머스 - 피자 나눠 먹기 (3) (0) | 2023.03.31 |
[JAVA] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (2) | 2023.03.29 |
프로그래머스 코딩테스트 연습 Lv.0 '문자열안에 문자열' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120908
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✏️ 문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
< 제한사항 >
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
※ 아래 입출력 예시를 참고하세요!
⚠️ 입출력 예시
예시 1
str1 ▼
"ab6CDE443fgh22iJKlmn1o"
str2 ▼
"6CD"
1
//"ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
예시 2
str1 ▼
"ppprrrogrammers"
str2 ▼
"pppp"
"ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
🔍 알고리즘 구상
- str1 안에 str2 부분이 있다면 replace()를 이용해 str2를 특정한 문자로 변환 후
- str1에 특정한 문자가 있다면 1로, 없다면 2로 리턴한다
✏️ 직접 구현한 코드
class Solution {
public int solution(String str1, String str2) {
int answer = 2;
String res = str1.replace(str2,"*");
for(int i = 0; i < res.length(); i++) {
if(res.charAt(i)=='*')
answer = 1;
}
return answer;
}
}
🗣️ 코드 설명
- 초기값을 2로 설정한 answer 생성한다
- replace()를 이용해, str1에 있는 str2부분을 *문자로 변환한 후 res에 저장한다
- 0부터 문자열 res의 길이보다 작을 때까지 증가하는 i를 인덱스 변수로 가진 for문을 만든다
- for문의 if문에서는, charAt()을 이용해 res의 한 글자씩 자른 뒤 *문자와 비교해서 *와 같은 문자가 있으면 answer의 값을 1로 변환한다
🔥 다른 코드와 비교
class Solution {
public int solution(String str1, String str2) {
return (str1.contains(str2)? 1: 2);
}
}
이 분은 삼항 연산자와 contains()를 사용해 한 줄로 코드를 구현했습니다.
⭐ 기억하고 넘어갈
- contains()
https://codingismylife.tistory.com/68
[JAVA] 메서드 - contains()
🤔 어떤 메서드일까? contains()는 대상 문자열에 특정 문자열이 포함되어 있는지 boolean값으로 판별하는 메서드 입니다. 대상 문자열.contains(포함되어 있는지 판별할 특정 문자열) 대소문자를 구분
codingismylife.tistory.com
- replace()
https://codingismylife.tistory.com/56
[JAVA] 메서드 - replace(), replaceAll()
🤔 어떤 메서드일까? replace() 와 replaceAll() 메서드는 문자열의 특정 문자를 원하는 문자로 변환하는 메서드입니다. replace() replace(CharSequence target, CharSequence replacement) 첫 번째 매개변수는 변환하고
codingismylife.tistory.com
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - A 강조하기 (0) | 2023.05.02 |
---|---|
[JAVA] 프로그래머스 - 옹알이(1) (0) | 2023.04.05 |
[JAVA] 메서드 - contains() (0) | 2023.04.05 |
[JAVA] 프로그래머스 - 피자 나눠 먹기 (3) (0) | 2023.03.31 |
[JAVA] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (2) | 2023.03.29 |