목록- (95)
olrlobt
🔒 2단계 - 이진 변환 반복하기 📌 테스트케이스 추가 힌트 해당 문제는 추가 테스트케이스가 필요하지 않았다. ✍️ 풀이법 먼저 문제 풀이 법을 생각해 보면, 다음과 같다. 1. 문자열 S에서 0을 제거한다 2. 1만 남은 문자열의 길이를 구한다 3. 길이를 2진수로 변환한다 4. 변환한 수를 문자열 S에 넣는다 5. 1~4를 문자열 S가 1이 될때까지 반복한다 answer = [반복한 횟수, 0을 지운 횟수] int 타입을 2진수 문자열로 리턴하는 toBinaryString을 사용하여 문제를 해결하였는데, 아주 간단하게 풀었다고 생각한다. 🗝️ 풀이 class Solution { public int[] solution(String s) { int[] answer = {0,0}; int leng = 0;..
🔒 2단계 - 올바른 괄호 📌 테스트케이스 추가 힌트 이 문제는 추가 테스트케이스가 필요하지 않았다. ✍️ 풀이법 이 문제는 스택을 사용하면서 풀 수 있고, 스택을 사용하지 않고 풀 수 있다고 생각한다. 여기서 나는 스택 사용법을 조금 더 숙지 해 본다는 생각으로 스택을 사용하여 코딩하였다. 생각하는 방식은 1. 스택에 한글자씩 넣는다. 2. 글자를 넣기 전에 빈 스택이 아니라면 꺼내서 확인해본다. 의 방법으로 접근하였고, 해당 방식으로 조건문을 작성하였다.🗝️ 풀이 import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = true; Stack stack = new Stack(); for(int i=0; i
🔒 2단계 - 점프와 순간 이동 📌 테스트케이스 추가 힌트 해당 문제는 추가 테스트케이스가 필요하지 않았다. ✍️ 풀이법 해당 문제는 처음 1칸은 무조건 점프해야하고, 무한대로 순간이동을 할 수 있지만, 도착 지점을 넘어버리면 안 되기 때문에 순간이동 사이사이 점프를 배치해 주어 최솟값을 맞추어야 했다. 해당 문제를 해결하기에 앞서, 테스트케이스 5000이 어떻게 5가 되는지 생각해 보았다. 단순히 1칸 앞으로 가서 2를 곱해 나가면 2 > ... > 1024 > 2048 > 4096 으로 남은 900칸을 점프해야 했다. 다음으로는 5000이니까, 단순히 5까지 점프, 또 순간이동 해 보았다. 5 > ... > 2560 > 5120 으로 초과 해버렸다. 다른 방법이 필요했다. 어떻게 5000이 5번 만에..
🔒 2단계 - 예상 대진표 📌 테스트케이스 추가 힌트 이번 문제는 일반적인 테스트 케이스만 추가하면 된다. ✍️ 풀이법 먼저 해당 문제를 쉽게 와닿게 하고, 푸는 방법을 머릿속에 그리기 위해 해당 문제의 예시들 중 간단히 그릴수 있는 예시 몇가지를 그려보았다. a=4 b=7 result=3 ex) ? 4 7 1 4 5 7 1 2 3 4 5 6 7 8 a=5 b=7 result=2 ex) 4 ? 1 4 5 7 1 2 3 4 5 6 7 8 여기서 떠올린 점은 주어지는 N을 반으로 선을 그어 나누면, 또 다른 토너먼트 그룹 2가지로 나누어지게 되고, 다른 그룹에 있다면 무조건 맨 위에서 만난다는 점이었다. 예를들어 아래의 그림에서, a가 line(2/n) 을 기준으로 좌측에 있따면, 우측의 5,6,7,8 을 ..
🔒 2단계 - 영어 끝말잇기 📌 테스트케이스 추가 힌트 테스트 19,20 번이 오류가 난다면, 2중 For 문의 break를 잘 걸어주었는지 확인해 보자. ✍️ 풀이법 1. 틀린 단어가 어딘지 찾는다. 1-1. 앞 단어의 뒷글자, 뒷 단어의 앞글자 (기본 끝말잇기 규칙)이 일치하는지 확인한다. 1-2. 현재 비교중인 단어가 중복된 단어인지 확인한다. 2. 틀린 단어의 위치를 이용하여 계산한다. 🗝️ 풀이 class Solution { public int[] solution(int n, String[] words) { int[] answer = {0,0}; int count = 0; for(int i=1 ; i
🔒 2단계 - JadenCase 문자열 만들기 📌 테스트케이스 추가 힌트 1. 공백이 두개 들어 간 문자열을 추가한다. 2. 공백이 마지막에 포함되어있는 문자열을 추가한다. ✍️ 풀이법 1. 주어진 문자열을 소문자로 바꾼다. 2. 하나의 문자열을 공백 단위로 잘라, 여러 문자열(단어 단위)로 구분한다. 3. 첫 글자가 소문자라면 대문자로 변경하고, 변경할게 없다면 answer에 추가한다. 4. answer에 추가 후 공백을 추가한다. 5. 만약 String s의 마지막 글자가 " " 공백이 아니라면, trim으로 공백을 제거해준다. 🗝️ 풀이 class Solution { public String solution(String s) { String answer = ""; s= s.toLowerCase();..