코딩테스트

Algorithm/프로그래머스

프로그래머스 : 이진 변환 반복하기(Java)

https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr [문제] 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 re..

Algorithm/프로그래머스

프로그래머스 : 폰켓몬(Java)

https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr [문제] 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓..

Algorithm/프로그래머스

프로그래머스 : 실패율(Java)

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr [문제] 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 ..

Algorithm/프로그래머스

프로그래머스 : 짝지어 제거하기(Java)

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr [풀이] 처음에 문자열을 돌면서 i와 i+1번째의 문자가 동일하다면 replace 메소드를 사용하는 식으로 짰는데 이렇게 될 경우 시간복잡도에 의해 문제를 풀지 못한다. (다른 문제를 풀면서도 알게 된 것인데 replace메소드 자체가 내부적으로 메모리를 많이 사용하게 된다고 한다.) 그래서 스택을 이용해서 풀면 보다 간단한 코드로, 효율성 좋게 통..

Algorithm/백준

백준 7795번(Python) : 먹을 것인가 먹힐 것인가

www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 단순하게 반복문을 통해 두 리스트를 비교하면 시간 초과가 생겨서 문제를 풀지 못한다. 따라서 이분 탐색을 활용하여 문제를 풀어야 한다. 이분 탐색을 하기전, 정렬을 한 뒤 이분탐색에 의하여 도출한 인덱스를 이용하여 답을 구하면 된다. 어차피 이분탐색에 의해 도출된 인덱스보다 작은 부분은 문제의 조건을 만족할 것이기에 따로 신경을 쓰지 않아도 된다. import..

skyey94
'코딩테스트' 태그의 글 목록 (6 Page)