본문 바로가기

알고리즘71

[programmers] 모의고사 모의고사x수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.​1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...​1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주.. 2020. 5. 18.
[programmers] 체육복 체육복x점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.​전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작.. 2020. 4. 7.
[programmers] [1차] 멀쩡한 사각형 멀쩡한 사각형x가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다.가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 soluti.. 2020. 2. 26.
[programmers] [1차] 비밀지도 비밀지도x네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.​1. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는"벽"("#") 두 종류로 이루어져 있다.2. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다.3. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다.4. 암호화된 배열은 .. 2020. 2. 26.
[programmers] [1차] 다트 게임 다트 게임x카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다.갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다.​1. 다트 게임은 총 3번의 기회로 구성된다.2. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다.3. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다.4. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수.. 2020. 2. 24.
[programmers] 실패율 실패율x슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다.​이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라.​실패율은 다음과 같이 정의한다.스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주.. 2020. 2. 15.
[codility] Dominator DominatorFind an index of an array such that its value occurs at more than half of indices in the array.Task Score100%Correctness100%Performance100% Leader가 카테고리명이라서 뭐가..리더지...뭐지..대표값..? 이랬는데문제를 보고 나니까 뭔 말인지 이해했다. 지금 이 문제에 나와 있듯이, 전체 데이터들 중에 절반 이상에 해당하는 값이 leader다. 그래서 원래 평소에 풀듯이~ 해서 풀었는데 53점이 나왔다 ^^..이래서 생각을 안하고 풀면 안되지..... 그래서 코딜리티에서 알려주는 방법을 공부해서 새로 풀었다.ㅋㅋ그 내용은 아래와같다. x// you can also use imp.. 2020. 1. 6.
[codility] StoneWall StoneWallCover "Manhattan skyline" using the minimum number of rectangles.Task Score100%Correctness100%Performance100% 아니.. painless라고 했잖아요 ㅠ짱구 굴리느라 너무 힘들었다.스택도 써보고 큐도 써보고 리스트도 써보고 콜렉션도 써보고 해쉬셋도 써보고 난리난리를 치다가혼자 그림그리고 순서도 써보고 글로 적어보고 난리난리를 치다가결국 누구누구한테 수학적으로 힌트를 받기는 했지만 결국 성공했다....자존심상해..☆ 아무튼~~ 설명을 해보자면, 힌트는 받았지만 코드를 받은게 아니라 그냥 수학적 접근법 정도였어서얘기를 듣고나니 가닥은 잡혔지만 정확히 로직을 어떻게 짜나갈지 고민이됐다.그래서 열심히 그림판으로 .. 2019. 12. 22.
[codility] Nesting NestingDetermine whether a given string of parentheses (single type) is properly nested.Task Score100%Correctness100%Performance100% Brackets랑 다른게 뭔데 ㅠ똑같이 풀어도 똑같이 100퍼 나오는거 뭔데ㅠ..그냥 if문 조건만 if(A){} if(B){}에서 if(A||B){}로만 바꿨다..ㅎ x// you can also use imports, for example:import java.util.*;​// you can write to stdout for debugging purposes, e.g.// System.out.println("this is a debug message");​clas.. 2019. 12. 20.
[codility] Fish FishN voracious fish are moving along a river. Calculate how many fish are alive.Task Score100%Correctness100%Performance100% 뭔가 귀여운데 잔인한 자연의 섭리같은 문제..A 배열에는 물고기의 크기,B 배열에는 물고기의 방향이 나타나있다. (0이면 올라가고, 1이면 내려가고)배열의 인덱스가 앞일수록 물고기는 더 위에 있다. 결국 나보다 앞 인덱스인 물고기가 내가잡아먹어서 없는상황에서 내가 위로(0) 올라가면 사는거고, 내가 다 잡아먹어서 제일 마지막 인덱스인데 내려가면 사는거다. 처음에 이상하게 혼자 복잡하게생각해서 스택 두개가지고 난장판을 피우다가 0%의..처참한 점수를 받고 정신차리고 하나의 스택으로 제.. 2019. 12. 12.