반응형

Algorithm 66

곱하기 혹은 더하기 - 페이스북 기출 유형

페이스북 기출 문제를 풀어 보겠습니다. 1. 문제 각 자리가 숫자(0 ~ 9) 로만 이루어진 문자열이 주어졌을 때 왼쪽부터 오른쪽으로 모든 숫자를 확인하여, 사이 사이의 '+', 'x' 연산 중 하나만 사용하여 가장 큰 수를 출력하는 문제 입니다. 다만, 'x' 곱하기 연산을 먼저 계산하는 방식이 아닌, 왼쪽부터 오른쪽으로 계산 하시오. 2. 접근 1. 0 또는 1 빼고 나머지 수들은 'x' 곱하기 연산시 값을 더 크게 만듭니다. 2. 따라서 0 또는 1일 경우만 '+' 연산, 나머지는 'x' 곱하기 연산을 해줍니다. public class Page312 { public static void main(String[] args) { String value = "02984"; System.out.print(..

Algorithm 2020.09.22

공유기 설치 - 백준 2110번

2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (1 ≤ xi ≤ 1,000,000,000)가 � www.acmicpc.net 수직선 상의 집 N개의 좌표가 주어졌습니다. 이 집들 사이의 공유기 C 개를 골고루 설치 하여 와이파이를 골고루 이용할 수 있습니다. 공유기는 집의 1개만 설치가 가능하며, 집의 좌표가 주어지고, 공유기의 갯수 C가 주어 졌을 때, 공유기를 설치 할때 가장 인접한 공유기의 거리가 최대가 되는 값을 출력 하시오. 1. 접근 1. 집의 범위가 1 ~ 1,000,000,000 으로 매우 큽니다. 2. 여기서 가장..

Algorithm 2020.09.22

파일 통계 프로그램

1. 문제 music : mp3, aac, flac image : jpg, bmp, gif movie : mp4, aiv, mkv other : 7z, txt, zip 위와 같은 파일 확장자가 존재 하고, music, image, movie, other 그룹으로 분리 할수 있다. input : "my.song.mp3 11b greatSong.flac 1000b not3.txt 5b video.mp4 200b game.exe 100b mov!e.mkv 10000b" 위와 같은 input 이 주어 졌을 때, 아래와 같은 반환 값이 출력 되도록 solution 함수를 구현 하시오. return : "music 1011b images 0b movies 10200b other 105b " 파일이름, 확장자, 파일..

Algorithm 2020.09.21

국영수 - '백준 10825번'

10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 영어로 된 학생 이름, 국어 점수, 영어 점수, 수학 점수가 주어졌을때, 국어 점수가 감소하는 순서로 국어 점수가 같으면 영어 점수가 증가하는 순서로 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다. 위와 같은 조건으로 정렬 하여, 학생 이름을 출력 하면 되는 문제 입니다. 1

Algorithm 2020.09.18

기둥과 보 설치 - '2020 카카오 코딩 테스트'

코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr n x n 매트릭스 벽면의 '기둥'과 '보'를 설치 하는 명령어 리스트를 주어, 설치 결과를 반환하는 문제 입니다. 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른..

Algorithm 2020.09.15

외벽 점검 - '카카오 2020 코딩 테스트'

코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 programmers.co.kr 원 모양의 외벽이 주어지고, 각 외벽에는 취약점이 존재 합니다. 이때 외벽의 취약점의 거리 배열이 주어지고, 이 취약점을 최소 인원의 친구들이 점검 할수 있는 인원 수를 반환 하는 문제 입니다. 친구들은 각자 자신들이 갈수 있는 거리 값 배열이 주어 집니다. 1. 접근 1. 최대 친구의 수가 8명 이므로, (8, 8) 순열값인 40320 이므로, 충분히 완전 탐색으로 풀수 있습니다. 2. 원 모양의 외벽을 편하게 계산 하기 위해서, 외벽을 2배 확장 시킵니다. 3..

Algorithm 2020.09.12

배열 합치기 - '백준 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

실패율 - '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
반응형