반응형

분류 전체보기 303

배열 합치기 - '백준 11728번'

11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거�� www.acmicpc.net 정렬된 두 배열(A, B)이 주어지고, 두 배열을 합쳐서 오름차순으로 정렬 하여 출력 하는 문제 입니다. 1. 접근 1. 두 배열을 하나의 배열로 합쳐서, 그 하나의 배열을 Arrays.sort() 함수(Dual-Pivot 정렬 : nLogN 보장)를 사용해서 정렬 후 출력, 하지만, 시간 제한 1.5초에 통과 하기는 쉽지 않습니다. 2. 잘 보면 두 배열이 각각 정렬 되어 있으므로 Merge Sort를 이용해서 시간 복잡도..

Algorithm 2020.09.11

OnBackPressedCallback 추상 클래스 onUserLeaveHint 콜백 함수

1. 액티비티에서 뒤로 가기 버튼을 눌렀을 때, 콜백 함수는? 액티비티에서 뒤로 가기 버튼을 클릭 하였을 경우, Acitivity::onBackPressed() 콜백 함수가 호출 됩니다. 또한 Androidx 에서는 androidx.activity.OnBackPressedCallback 추상 클래스를 제공 합니다. OnBackPressedCallback::handleOnBackPressed() 메서드를 제공 하고 있어서, 액티비티와의 의존성을 줄이고, Fragment 에서 '뒤로 가기 버튼 로직' 을 추가 할 수 있습니다. OnBackPressedDispatcher.addCallback(LifecycleOwner, OnBackPressedCallback)을 사용해서 Fragment를 등록해 줄 수 있습니..

Android 2020.09.08

액티비티 생명 주기(Life Cycle) 콜백 함수

액티비티의 생명 주기(Life Cycle)의 호출되는 콜백 함수들에 대해서 알아 보겠습니다. 1. 생명 주기(Life Cycle) 2. 생명 주기(Life Cycle) 콜백 함수 onCreate 생성 시 초기화 처리와 뷰 생상(setContentView 호출) 등 onStart 비표시 시 Activity 가 사용자에게 보여지기 직전에 호출되는 callback 함수 , 통신이나 센서 처리를 시작 onResume 표시 시(재시작만) 사용자가 액티비티와 상호 작용을 하기 직전에 호출 됩니다. 애니메이션 실행 등의 화면 갱신 처리 onPause 최전면 표시 다른 액티비티의 호출로 해당 액티비티가 백그라운드로 진입 할때 호출. 애니메이션을 포함한 CPU를 소모하는 작업들을 중단 시킬때 이곳에서 하면 적절. 이 메..

Android 2020.09.08

실패율 - '2019 카카오 코딩 테스트'

코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스�� programmers.co.kr 각 유저의 현재까지의 달성한 스테이지 배열이 주어지고, 전체 스테이지 값 N이 주어집니다. 이때 실패율 = '클리어 못한 플레이어 수(m)' / '스테이지에 도달한 플레이어 수(k)' 공식이 주어 졌을때, 각 스테이지 별 실패율이 큰 순서대로 내림차순 배열을 출력 하는 문제 입니다. 1. 접근 1. 각 스테이지 N(최대 500) 반복문을 돌면서 2. 각 스테이지 배열 반복문을 돌면서 3. 실패율(FailRate)을 계산합니다. 4. 실패율들(failRates..

Algorithm 2020.09.08

무지의 먹방 라이브 - '2019 카카오 코딩 테스트'

코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 회전 초밥과 같은 회전판의 음식들이 제공되고, 무지가 1초마다 해당 음식들을 먹으면서, 음식들이 회전 합니다. 다 먹은 음식은 건너 뛰고, k 초가 주어지고, 음식을 먹기 시작하고, k초 후의 먹을 음식을 출력하는 문제 입니다. k가 굉장히 크므로, k를 기준으로 완전 탐색 하면, 시간 초과로 효율성 테스트에서 탈락 합니다. 따라서, food_times는 200,000으로 food_times를 완전 탐색 하면서 풀수 있는 방법을 찾아야 합니다. 1. 접근 1. 시간 별로 food_times를 정렬 합니다. 2. (현재 먹는 음식 시간 - 이전 먹은 음식 시간) x (남은 음식의 갯수) < 방송이 중단 될 시간(k) 3. 까지는 음식을..

Algorithm 2020.09.07

괄호 변환 - '2020 카카오 코딩 테스트'

코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 주어진 괄호 문자열을 정상적인 문자열로 반환 하는 문제 입니다. 문제에서는 '올바른 괄호 문자열'과 '균형 잡힌 괄호 문자열'로 용어를 나누어 설명 합니다. 문제에서 제시한 방법대로 그대로 구현 하면 되는 문제 입니다. 따라서, 문제를 꼼꼼히 읽어 보는게 중요 했던거 같습니다. 사실, 문제의 설명이 잘이해가 가지 않았지만, 그냥 설명대로 구현했더니, 통과 할수 있었습니다. public class Page346 { /* * p result * "(()())()" ..

Algorithm 2020.09.07

자물쇠와 열쇠 - '2020 카카오 코딩 테스트'

코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 2차원 배열 key와 2차원 배열 lock가 0과 1로 주어졌을 때, 회전, 상/하/좌/우 이동을 통해서 홈의 맞으면 true, 맞지 않으면 false 를 출력하는 문제 입니다. 1. 접근 1. 먼저, 배열의 길이가 최대 20 * 20 이므로, 완전 탐색 이용 2. key 를 이동 시키기 전에 lock의 배열을 3배 키우고, 중앙의 lock의 값을 위치 시킵니다. 3. 3배 키운 lock을 key가 90도 씩 회전 하면서, 4. 한칸씩 이동 하면서 열리지는 확인 합니다. 5. lock + key의 원소의 값이 ..

Algorithm 2020.09.04

문자열 압축 - '2020 카카오 코딩 테스트'

코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문자열이 주어지고, 앞 문자열과 바로 뒷 문자열이 같은면, 같은 횟수 만큼의 숫자와 문자로, 문자열을 압축 하였을때, 문자열의 길이가 가장 작은 길이를 출력 하는 문제 입니다. 1. 접근 1. 문자열의 길이가 1000 이하 이므로, 완전 탐색으로 해결 할수 있을거 같습니다. 2. 압축 할 수 있는 최대 길이는 주어진 문자열의 반까지만 압축 할 수 있습니다. 3. 따라서 1부터 문자열의 반까지 완전 탐색 하면서 압축을 합니다. 4. 가장 짧은 문자열의 길이를..

Algorithm 2020.09.03

안테나 - '이것이 코딩 테스트다 with 파이썬'

이것이 취업을 위한 코딩 테스트다 with 파이썬 IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부 book.naver.com 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net '안테나' 문제 입니다. 일직선상의 집의 위치가 주어지고, 안테나는 집의 위치중 한군데만 설치 할 수 있습니다. 이때 안테나로 부터 모든 집의 위치까지 거리의 합이 최소가 되는 안테나의 위치를 출력 하는 문제 입니다. 집의..

Algorithm 2020.09.01

연구소 - '이것이 코딩 테스트다 with 파이썬'

이것이 취업을 위한 코딩 테스트다 with 파이썬 IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부 book.naver.com '연구소' 문제는 0은 안전 지역, 1은 벽, 2는 바이러스로 되어있는 n x m의 맵이 있습니다. 바이러스는 좌/우/상/하 로 전파 합니다. 이때 벽을 3곳만 설치 할수 있을때 안전지역 칸의 최대값을 출력 하는 문제 입니다. 1. 접근 1. 3칸의 벽을 모든 경우의 수 만큼 벽을 치고 2. 바이러스가 상/하/좌/우 로 전파 합니다. 3. 이때 안전 지역의 최대값을 출력 한다. 2중 반복문으로 3칸의 모든 경우의수를 벽을 치면서, 바이러스의..

Algorithm 2020.09.01
반응형