개인 공부/TIL

[ TIL - PGS ] 99클럽 코테 스터디 5일차 TIL + 오늘의 학습 가이드

킴도비 2024. 7. 26. 21:39

💡 오늘의 학습 키워드

  • 해시(지만 사용하지는 않은..)

 

✅ 오늘 공부한 내용

  • startWith
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • 오늘의 프로그래머스 문제! 전화번호 목록

 

👀 오늘의 회고

🤣 오늘의 문제점

  • 1차로 풀었을 땐.. 그냥 투포인터면 해결 😉 이라 생각하고 했다게 대차게 틀렸다.
  • 2차로 풀 때는 중간에 조건 문으로 for문을 빠르게 벗어날 수 있게 해 성공한 확률이 높아졌지만 여전히 실패했다.
  • 3차로 풀 때는 contains를 equals로 변경 이후 sort로 먼저 배열을 정렬하여 더 빠르게 진행했으나 효율성 테스트에서 실패..!
  • 4차로 풀 때는 for문을 하나 줄여보았다..! 정렬 이후 바로 뒷 문장과 비교만 하면 되었기에.. 시도했으나 여전히 15, 19 테스트 케이스에서 실패하였다 😥
  • 마지막 5차에서는 gpt 선생님께...도움을 살짝 구해보았는데 startsWith이라는 것을 사용하는 사례를 보여주길래 써보니 성공하였다
더보기
무수한 실패 기록

 

🔥 어떤 시도를 했는가?

  • startsWith을 쓰기 전에는 위와 같이 시도를 하였었고, startsWiith을 쓰니 성공하였다.
  • 아래는 성공한 코드 ~.~
import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
       // 전화번호
       // 다른 번호의 접두어인가?
       // 구조대 전화번호 , 영석이의 전화번호의 접두사이다.
        
       // 접두어라면 false 아니라면 true
        
       boolean answer = true;
       Arrays.sort(phone_book);
        
       int len = phone_book.length;
                
       for (int i = 0; i < len - 1; i++) {
            if (phone_book[i + 1].startsWith(phone_book[i])) {
                return false;
            }
        }
        
        return answer;
    }
}

 

👏 무엇을 새로 알았는가?

  • startsWith이란?
    • 내가 찾는 문자열이 특정 문자 또는 문자열로 시작하거나 끝나는지에 대해 체크할 수 있는 함수
    • boolean 형태이며 아래와 같이 사용할 수 있다.
    • 있는가 비교할문장.startsWith("원하는단어");
String str1 = "java test";

// 시작하는가 비교
System.out.println(str1.startsWith("java");

// 끝나는지 비교
System.out.println(str2.endsWith("test");

 

  • 아! 추가로 얘네 원래 태그가 Hash여서 Hash로 나중에 다시 풀어서 업데이트를 해야할 것 같다! 

 

👩‍💻 내일은 무엇을 학습할 것인가?

  • 항해99 문제 풀기