본문 바로가기

전체 글80

가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 10, .. 2021. 4. 28.
Javascript 정리 (1) 1. 컴파일러 언어 VS 인터프리터 언어 코딩, 프로그래밍 세계에서 언어는 여러 관점으로 분리가 된다. 저레벨 언어, 고레벨 언어 / 인터프리터 언어, 컴파일러 언어 / 객체지향 언어, 절차 지향 언어, 함수형 언어, 선언형 언어 등이 있다. 또한 함수형 프로그래밍, 반응형 프로그래밍, 논리 프로그래밍 등 다양한 프로그래밍 기법도 있다. 이 수많은 차이점을 가지고 불리는 언어들 중에서 컴파일러 언어와 인터프리터 언어의 차이점을 내 생각대로 쉽게 풀어써보려 한다. 우선 우리가 쓰는 코드라는 것은 기계가 절대로 이해하지 못한다. 이는 마치 한국어를 하나도 모르는 외국인에게 한국어로 말하는 것이나 다름없다. 그렇다면 우리는 그 말을 어떻게 하여 외국인에게 이해를 시킬 수 있을까. 바로 번역기를 사용하는 것이다.. 2021. 4. 27.
큰 수 만들기 Programmers 프로그래머스 C++ 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" .. 2021. 4. 26.
2021 네이버 신입공채 코딩테스트 후기 7시간 전 인생 3번째 코딩 테스트를 보았다. 이전 네이버 신입 공채 코딩 테스트 후기들을 찾아보면 2시간 동안 3문제를 풀어야 하고 화상 녹화라던지 화면 공유도 없는 줄 알았는데 음.. 다 해야 하고 더블 모니터도 불가능이라서 모니터도 없애야 했고 준비할게 많았다. 2021년 4월 24일 토요일 14시~16시까지 진행된 2021년 네이버 신입 공채 코딩 테스트는 총 4문제를 2시간 안에 푸는 방식으로 진행되었다. 문제를 풀 수 있는 프로그래머스 사이트를 제외한 나머지 모든 사이트에 대한 참조 금지, 개인 노트 사용 금지 등 제약이 많긴 했다. 하지만 코딩 테스트 진행 도중 볼 수 있는 각 언어에 대한 레퍼런스 사이트는 주어져서 만약 본인이 사용하는 언어에 대한 단순 사용방법이 아니라 레퍼런스 사이트를 .. 2021. 4. 24.
Greedy Algorithm 탐욕법 정리 Dynamic Programming처럼 현 단계에서 이전 단계를 이끌어내는 기법에 비하여 Greedy Algorithm은 현 단계에서 가장 최적인 다음 단계를 만들어내는 기법이다. Greedy Algorithm의 가장 기본적인 원리는 최댓값 max[n] 혹은 최솟값 min[n] 에서 배열의 다음 값인 arr[n+1]의 값을 더하거나 빼서 max[n+1] 혹은 min[n+1]을 만들어내는 방식이다. 예를 들어서 a라는 지점에서 d라는 지점까지 가는 방법이 a->b->d a->c->d 2가지인 경우라고 생각을 해보자. a->b까지 걸리는 시간이 1시간, b->d까지 걸리는 시간이 1시간이고 a->c까지 걸리는 시간이 1시간 40분, c->d 까지 걸리는 시간이 40분 일 경우 우리는 당연하게도 a->b->d.. 2021. 4. 22.
Dynamic programming 동적 계획법 정리 동적 계획법의 개념은 문제에서 주어진 최종적인 결괏값을 만드는 것을 여러 개로 쪼개어 그 아랫단계로 만들어 내는 것이다. 즉 i번째의 결과를 도출해내기 위하여 i-1번째를 보고 i-1번째를 만들기 위하여 i-2번째를 참조하는 식이다. 다만 이런 예시는 단순히 반복문만으로 하드코딩을 하더라도 풀어낼 수 있다. 하지만 만약 i번째의 결과를 만들기 위하여 3가지 경우의 수가 존재한다면? DP[i] = DP[i-1] + DP[i-2] DP[i] = DP[i-2] + DP[i-3] DP[i] = DP[i-1] + DP[i-3] 와 같은 점화식이 나오고 그중에서 최댓값 혹은 최솟값을 구해야 한다면 반복문으로는 풀 수 없는 한계점에 이르게 된다. 단순히 3가지의 경우만 있더라도 10번째 최솟값을 구하기 위해선 3^1.. 2021. 4. 21.
네트워크 Programmers 프로그래머스 C++ 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers .. 2021. 4. 21.
메뉴 리뉴얼 C++ 2021 KAKAO Blind Recruitment 문제 설명 레스토랑을 운영하던 스카피는 코로나 19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품 메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품 메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품 메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습니다. 예를 들어, 손님 6명이 주문한 단품메뉴들의 조합이 다음과 같다면, (각 손님은 단품메뉴를 2개 이상 주문.. 2021. 4. 20.
2021 프로그래머스 월간 코딩 챌린지 시즌2 후기 4월 15일 목요일 프로그래머스에서 주최하는 월간 코딩 챌린지 시즌2를 보았다. 1차, 2차 총 8문제가 나오며 저번 주에 첫 번째 대회를 보았다. 1번은 level1도 못 미치는 수준이고 2번은 level1.5 정도이고 3번은 level 3으로 책정이 되었지만 개인적으로 level 3~4 사이인 듯하다. 4번은 사실 풀 수 없을 거라 생각하고 시도도 안 했고 level 5로 나온 거 보니 상당히 어려운 문제였던 것 같다. programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어.. 2021. 4. 19.
2021 스타트업 코딩 페스티벌 후기 3월 20일 인생 두 번째 코딩 테스트를 봤다. 왓챠, 쏘카, 오늘의 집, 마켓 컬리, 브랜디, 번개장터 총 6개의 스타트업 회사에서 개발자 채용을 위한 스타트업 코딩 페스티벌이라 쓰고 코딩 테스트..라고 읽는 대회를 개최했다. 나는 올해 안에 취업하자는 것이 첫 번째 목표이지만 아직 코테 실력이나 특히 프로젝트 부분이 너무나 명확하게도 부족하다. 뭐 이번 스코페도 그냥 경험 삼아서 해보자는 생각이었다. 예외처리가 테스트 케이스로 안 주어지는 코딩 테스트에 익숙해지자는 것도 목표이기도 하다. 지금 채용이 나오고 있는 모든 코딩 테스트에 다 지원하는 이유도 그것이기도 하고 너무 카카오 코테에만 익숙해져 가는 것이 아닌가 싶어서 싹 다 넣어는 보고 있다. 이미 1달이나 지난 스코페지만 후기라도 써보자!라는 .. 2021. 4. 13.