[Python, 이분탐색] 백준 1072 게임
·
Algorithm
접근방식이 문제를 해결하기 위해 이진 검색을 사용합니다. 중요한 점은 'X'의 가능한 값이 크기 때문에 간단한 계산이 비효율적이라는 것이다. 따라서 이진 검색을 사용하여 승률을 높이는 데 필요한 최소 추가 게임 수를 효율적으로 결정할 수 있다.문제풀이초기 승률 Z = (100 * Y) // X를 계산합니다.Z >= 99인 경우 백분율을 더 높이는 것은 불가능하며 -1을 반환왼쪽 = 0 및 오른쪽 = X로 시작중간점 계산: mid = (왼쪽 + 오른쪽) // 2.새로운 승률 (100 * (Y + mid)) // (X + mid)가 Z를 초과하는 경우 결과를 mid로 업데이트하고 검색 범위를 왼쪽으로 조정(right = mid - 1).그렇지 않으면 검색 범위를 오른쪽(왼쪽 = 중간 + 1)으로 조정합니다...
Programsers JadenCase 문자열 만들기 - JavaScript
·
Algorithm
문제 제목 : JadenCase 문자열 만들기 문제 유형 : 문자열 출제 플랫폼 : Programers 문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12951 내가 푼 답안 function solution(s) { return s.toLowerCase().split(' ') .map((v) => v.replace(v[0], v[0].toUpperCase())) .join(' ') } // runtime 오류 발생 다른 사람의 풀이 function solution(s) { return s.toLowerCase().split(' ') .map((v) => v.replace(v[0], v.charAt(0).toUpperCase())) ...
Programers 키패드 누르기 (2020 카카오 인턴십) - JavaScript
·
Algorithm
문제 제목 : 키패드 누르기 (2020 카카오 인턴십) 문제 유형 : Hash 출제 플랫폼 : Programers 문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/67256 PesudoCode and Exception // PesudoCode 1) 확정값에 대한 object를 만들어 사용할 준비를 한다 - let leftPoint = {'1': 'L', '4': 'L', '7': 'L', '*': "L"} - let rightPoint = {'3': "R", '6': "R", '9': "R", '#': "R"} 2) 3, 6, 9, 0을 정하는것은 왼손과 오른손의 현재 위치에 따라 다르므로 변수를 만들어 둔다 - leftPoint, r..
Programers 비밀지도 (2018 카카오 신입 공채 1차) - JavaScript
·
Algorithm
문제 제목 : 비밀지도 (2018 카카오 신입 공채 1차) 문제 유형 : 완전 탐색, 이진법 출제 플랫폼 : Programers 문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/17681 PesudoCode and Exception // PesudoCode 1) arr1, arr2를 이진법으로 바꾸게 되면 길이가 다 다르므로 최대 길이를 확인한다. 2) '1011' , '110111'는 길이가 다르기 떄문에 거꾸로 하나씩 확인하며 길이가 다른부분은 0으로 생각한다. 3) 동일한 위치에 '1'이 한곳에만 있어도 새로운 맵에 표현해야 한다. 4) 양쪽에 '1'없는 곳에만 맵에 표현안한다는 조건문을 이용하여 map을 통해 변경한다. 내가 푼..