코딩테스트 회고록/코테_Java

[JAVA] 프로그래머스 - 문자열안에 문자열

2023. 4. 5. 00:49
목차
  1. ✏️ 문제 설명
  2. ⚠️ 입출력 예시
  3. 🔍 알고리즘 구상
  4. ✏️ 직접 구현한 코드
  5. 🗣️ 코드 설명
  6. 🔥 다른 코드와 비교
  7. ⭐ 기억하고 넘어갈

프로그래머스 코딩테스트 연습 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
  1. ✏️ 문제 설명
  2. ⚠️ 입출력 예시
  3. 🔍 알고리즘 구상
  4. ✏️ 직접 구현한 코드
  5. 🗣️ 코드 설명
  6. 🔥 다른 코드와 비교
  7. ⭐ 기억하고 넘어갈
'코딩테스트 회고록/코테_Java' 카테고리의 다른 글
  • [JAVA] 프로그래머스 - A 강조하기
  • [JAVA] 프로그래머스 - 옹알이(1)
  • [JAVA] 메서드 - contains()
  • [JAVA] 프로그래머스 - 피자 나눠 먹기 (3)
iamjisu
iamjisu
글 솜씨는 없지만 한 글자 한 글자 정성을 다해, 새롭게 배운 것을 정리하고 공부하는 코딩 성장 일기!!
iamjisu
지수의 코딩 발자국
iamjisu
전체
오늘
어제
github 링크
  • 카테고리
    • 개념정리
      • CS
      • MySQL
      • JavaScript
      • Kotlin
      • Java
      • NodeJS
      • Android
    • 코딩테스트 회고록
      • 코테_Java
      • 코테_C언어
    • 오류해결

최근 글

최근 댓글

hELLO · Designed By 정상우.
iamjisu
[JAVA] 프로그래머스 - 문자열안에 문자열
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.