프로그래머스/모의고사수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ..
문제 링크자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를
문제 링크(https://programmers.co.kr/learn/courses/30/lessons/427460 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 6, 10, 2라면 610
문제 링크OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄
문제 링크사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다.단어 하나 word가 매개
문제 링크0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다.당신이 압축하고자 하는 특정 영역을 S라고 정의합니다.만약 S 내부에 있는 모든 수
문제 링크정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.n행 n열 크기의 비어있는 2차원 배열을 만듭니다.i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.1행 1열부터 i행 i열까지의 영역 내의 모
문제 링크세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다.저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을
링크 문제 링크 문제 설명 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서
문제 링크신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다.어피치는 여러 압축 알
문제 링크라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다.네오는 자
문제 링크하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다.예를들어0ms 시점에 3ms가 소요되는 A작업 요청1ms 시점에 9ms가 소요되는
문제 링크n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다.처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로
문제 링크n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다.노드의 개수 n,
문제 링크양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처
문제 링크주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다.요금표입/출차 기록자동차별 주차 요금어떤 차량이 입차된 후에 출차된 내역이 없다면, 23:59에 출차된 것으로
문제 링크카카오배 양궁대회가 열렸습니다.라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다.카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁
문제 링크신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신
문제 링크튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다.숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째
문제 링크고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종
문제 링크카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다.이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자.
문제 링크이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량은 요청의
문제 링크IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다.이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다.해커톤 대회에 참가하는 모든 참가자들에게는 숫
문제 링크n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요.다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니
문제 링크n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기
링크
문제 풀이회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만
문제 링크스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.속한 노래가 많이 재생된 장르를 먼저 수록합니다.장르 내에서 많이 재생된 노래를 먼저 수
문제 링크계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다.아래 그림은 m = 4, n = 3 인 경우입니다.가장 왼쪽 위, 즉 집이 있는 곳
나의 Mysql 정리 노트!
문제 링크가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다.예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다.체스판의 가로 세로의 세로의 길
문제 링크N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아, 4g 기지국
문제 링크다단계 하는 회사가 있는데, 그 회사의 조직 구성도는 이러하다.이 회사의 수익 구조는 만약 말단 직원인 young이 1200원을 벌었다고 가정하자.그럼 이런식으로 young은 1200원에서 수수료(10%)를 자신의 추천인(edward)에게 떼준다.그럼 edwa
문제 링크(https://programmers.co.kr/learn/courses/30/lessons/67258개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다.어피치는 쇼핑을 할 때
문제 링크여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게
문제 링크회사 생활을 즐긴다고 글을 정말 오랜만에 쓰는 것 같다머릿속에서 문제를 그려봤는데, 반지름 d인 원이 있음1.1 x,y축 포함 "1사분면에서 점이 얼마나 찍히는가?"를 묻더라좌표평면위의 원에다가 x = k라는 직선을 그어서 만나는 점(소숫점 털어내야함) 밑으로
문제 링크문제를 요약하자면 우선 A배열과 B배열이 있다.1-1 A배열에 적힌 숫자를 모두 나눌 수 있는 숫자(최대공약수 공약수)가 존재하면1-2 그 숫자는 B배열에서는 아무런 숫자와도 나누어 떨어지면 안된다.1-3 위 두개를 만족하는 숫자들 중 가장 큰 수를 리턴하자1
문제 링크배열 길이 제한이 1,000,000이다? O(n)에 끝내도 되더라 (뇌피셜)자료구조는 Map<Integer, Integer>를 선언해서 어떤 숫자가 몇 번 나왔는지 저장한다. 핵심은 map의 size!O(n)믿고 처음에 형한테 케이크를 다줬다. (put)
문제 링크제한사항에서 큐들의 길이가 최대 30만 -> O(n)으로 해결 가능!1.1 근데 이 문제는 큐1 = 1, 1, 1, 8, 10, 9 큐2 = 1, 1, 1, 1, 1, 1같은 반례를 통해 O((q1사이즈 + q2사이즈) \* 2)까지 커질 수 있더라.1.2 위
문제 링크어떤 맵이 있고, 최단거리를 찾는거면 무조건 BFS를 떠올려보자bfs(시작점 -> 레버) + bfs(레버 -> 도착점)인 BFS 기본문제다!문제 설명중, "따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸
문제 링크인센티브를 못받는 사람을 거른다.완호보다 점수 높은 사람마다 answer++를 한다.인센티브를 못받는 사람을 걸러내기위해 근무태도 점수를 내림차순으로 정렬해보자.정렬할 때, 근무태도 점수가 동점인 경우엔 동료 평가 점수를 오름차순으로 정렬해보자.동료 평가 점수
문제링크뒤에서부터 물량을 최대한 소화하기위해 뒤에서부터 시작한다.1-1 뒤에서부터 처리해야하는 이유는 난 이렇게 생각한다.1-2 앞에서부터 물건을 소화하다가 뒤에가가지고 자투리 잉여 물량이 남아버리면 그 먼거리를 가야한다.1-3 그냥 탐색 순서만 뒤에서 앞으로하면 같은
문제 링크일단 o, x가 각각 몇 번이 나왔는지 다 세고, 누군가 이겼다면 줄이 몇 개가 완성이 되었는지 가져오자절대 일어날 수 없는 일 (x가 o보다 많다거나 둘 다 한줄을 완성했다거나 등등 모든 경우의 수를 if문으로 처리 하자구현은 쉬운데 반례 찾는게 좀 힘들었던
어디 문제 제한사항에서 배열의 길이가 한자리 수 제한으로 주어진다..? 그러면 최소 재귀를 이용한 완전탐색을 생각해야하는것같다.이 문제는 각 상품마다 10 ~ 40까지 할인율 모두 적용해보고 각 할인율 적용됐으면, 유저 배열 돌려서 구매 로직을 구현하면 된다.그럼 각
문제 링크하루는 1440분이다. "HH:MM"으로 표현된 시간들을 전부 분(M)으로 표현하자. 그걸 int 배열로 만들어내면 하나의 길다란 예약 현황표기 된다. (청소 10분까지 해서 1450개)예약이 된 시간은 +1씩 더하자.2-1 이때, 청소시간 (10분)이 끝나자
문제 링크제한사항에 sequence의 길이가 50만까지니까, O(n)들로만 구성된 반복문만 쓴다면 딱히 풀이에 지장이 없을것이라 생각했다.모든 sequence 배열 각 원소에 1 -1을 곱해서, 그 합을 누적하여 쌓은 배열 하나를 가지고있자그 배열의 최댓값 - 최솟값이
문제 링크(https://school.programmers.co.kr/learn/courses/30/lessons/152996제한사항에 몸무게 배열의 길이가 100000만이라 생각없이 이중포문 돌리다가 망한다.힌트가 하나 있는데, weight의 종류?를 제한해
문제링크무조오오오오건 bfs인데 섬 체크만 해주면됨그냥 섬 하나당 bfs 한번 돌려서 더해놓은 값을 list에다 담자list to array 해주면 끝!
문제링크문제의 핵심은 "목표치까지 도달하기위한 최솟값"이니 bfs를 먼저 떠올려보자나는 매번 1의 자릿수를 통해 각 자릿수 버튼을 얼마나 눌러야할지 최종 결과값에 계속 더할려고한다.1의 자리만 떼놓고 판단해도 되는게, 어차피 문제에서 주어지는 storey는 1억이내의
문제 링크제한사항에 배열의 길이는 최대 100만개이므로, 최대한 O(n)에 풀 생각을 하자문제는 곧 바로 다음 자기보다 크기가 큰 수를 찾는것인데, 이를 풀기위해 스택을 사용하였다.스택에는 현재 index를 저장하였는데, 스택을 사용하여 매번 루프마다 스택의 꼭대기에
문제 링크bfs로 풀자일반 bfs지만, 벽또는 장애물(D)를 만나기전까지 이동한다 라는 로직만 구현하면 되는 bfs다.처음엔 문제 풀이가 부족하다고 생각했지만, 문제를 이해하고보면 문제에서 해줄 설명은 다 해줬다고 생각한다.문제에 대해 더이상의 설명은 필요가 없다?라는
문제 링크각 sources에서 destination으로 가지말고, 문제 조건상 어차피 도착지는 단 하나니까 애초에 destination에서 출발하자LinkedList를 자료형으로 가진 ArrayList를 선언하여서 각 지점간의 관계를 표현하고, destination에서
문제링크문제 조건을 읽어보면, 어차피 곡괭이 하나 들었으면 마인크래프트마냥 앞에꺼 다섯개 무조건 캐야한다.1-1 마인크래프트랑은 다르게 앞에 놓여진 블록들을 알때, 어떻게 캐야 제일 효율적으로 캘까?를 묻는것.minerals를 다섯개씩 묶자. 그러면 section들이
링크일단 시작시간을 기준으로 plans 배열을 정렬하자.현재 진행중인 과제 및 미뤄놓은 과제를 스택에 담자.2-1 stack.peek() > 현재 진행중인 과제2-2 그 밑에 있는 데이터들 > 미뤄놓은 과제들현재 진행중인 과제의 start + playtime이 방금 받
문제링크제한사항이 100만이다? 그럼 O(n)안에 끝내자투포인터 기법으로, left, right 포인터를 가지고 있자left하고 right는 앞으로 한칸씩 움직일 예정이므로, 한발자국씩 나갈때마다 우리는 right - left 값을 알 수 있다.3-1 나는 이 부분을