< 문제 > 풀이 2차원 탐색으로 2중 for문을 돌면서 세로는 행 , 가로는 열로 기준을 잡고arr행,열로 기준잡아 각 반복을 돌때마다 합을 초기화해주고, 그중 최대값을 구함
< 문제 > 풀이문제에서 자신의 상하좌우 숫자보다 큰 경우를 확인하라고 해서 이중 for문을 돌때 찾는 위치에 북,동,서,남 방향을 먼저 배열로 선언 ex) arr2.2위치의 상하좌우를 찾기위해서는 1,23,2을 확인해야한다.이중 for문을 돌면서 거기서 상하좌우
< 문제 > 풀이처음에 문자열의 길이제한 100 보다 더 큰 숫자를 pos라는 변수에 할당하고e가 오른쪽에 있는경우의 숫자를 구해서 배열에 push그 이후 e가 왼쪽에 있는경우 숫자를 구하면서 왼쪽에 있는경욱의 숫자가 더 적으면 숫자를 바꿔준다.
< 문제 > 풀이cnt를 1로 먼저 선언한이후,연속하는 -> 다음 index에 들어오는 문자가 현재 index의 문자와 같은경우 count를 올려줌,그 밖에(연속하지 않은경우) cnt를 문자열에 더해주고, cnt를 기본값 1로 초기화해준다.하지만 이때 cnt가 1
< 문제 >풀이숫자 버전각 자릿수를 copy가 1이 될때까지 10으로 나누면서 나눈 나머지값을 구해줌. 이때 꼭 copy/10에 소숫점 내림을 parseInt or Math.floor를 이용해 해줘야함.내장함수 버전split을 이용해서 배열로 만들어야하는데 숫자는
< 문제 > 풀이숫자로 반복문을돌면서 각 숫자를 뒤집은 이후,소수인지 아닌지 판별하는 isPrime함수를 만들어 소수인지 판별후 소수이면 push하는 풀이
< 문제 > 업로드중..풀이A학생 B학생 둘을 비교해야할 경우 나올 수 있는 경우에수를 먼저 구해준다.이경우 = 총 16가지 경우가나온다 (A가 1일때 B가 1,2,3,4)가 나올경우 ~ A가 4까지그렇게 i와j를 먼저 이중 for문을 돌려 16개를 만들어주고,그
< 문제 > 풀이먼저 두수의 합이 가장 작은 순서대로 정렬을 진행,정렬한 수에서 차례대로 상품가격의 50%(나누기 2)쿠폰 적용을 진행한 후에쿠폰을 적용한 index를 제외한 나머지 index를 이중포문으로 완전탐색각 반복마다 money의 가격이하로 갯수를 구하고
< 문제 >풀이주어진 arr라는 배열에서 3개를 뽑고, 그 3개의 카드의 합을 기록하는데 3장을 뽑을수 있는 모든경우를 기록한다는것에서 완전탐색을 떠올릴 수 있다.이러한경우 모든 경우의 수를 돌아야해서 3중 for문으로 모든 3개의 숫자조합을 탐색한다.그런데 문제
< 문제 - 완전탐색 >첫번째 풀이문제에 나온것 같이 가장 큰 가로, 세로길이가 아닌 위치를 돌려가며 가장 효율적으로 가로,세로 길이를 맞춰야한다.가로의 길이만 모은 배열을 map으로 작성,세로의 길이만 모은 배열을 map으로 작성,반복을 돌면서 해당index에서
< 문제 >풀이투포인터 알고리즘 = sort만해도 O(nlogn)의 시간복잡도를 가짐.두개의 포인터변수를 가지고 쭉 증가하면서 반복문 하나로 끝낼 수 있음 O(n + m) = o(N)
< 문제 >풀이투포인터 알고리즘으로 풀이 - 투포인터는 한번 반복이기 때문에 O(n)이지만그를 위해 오름차순 정렬 sort메소드를 사용하기때문에 sort에서 O(nlogn)이기때문에 빅오표기법은 = O(nlogn)먼저 두개의 배열을 전부 오름차순으로 정렬하고 반복
< 문제 > 풀이빅오 = O(n)( 투포인터 알고리즘 )이중 for문으로 문제를 풀수도 있지만 투포인터를 이용하면 한번의 반복으로 문제 해결가능.lt를 왼쪽 배열, rt를 오른쪽 배열로 가정하고 rt를 배열의 길이만큼 반복을 시킨다.sum이라는 합을 저장할 변수를
< 문제 >풀이이중for문으로는 O(n^2)이 나오기 때문에, 슬라이딩 윈도우로 풀이 = O(n)처음 k개 만큼의 반복으로 sum값을 구해두고,문제가 연속된 k일동안의 최대매출임으로, 해당 반복위치에서 배열의 길이만큼 오른쪽으로 한칸이동하면서 해당 index의 값
< 문제 > 풀이js에서 제공하는 Map을 이용하는 풀이에서는(Map객체는 키-값 쌍을 보유하고 키의 원래 삽입 순서를 기억합니다 . 모든 값(객체 및 기본 값 모두 )은 키 또는 값으로 사용할 수 있습니다.)반복을 돌면서 Map으로 만든 객체에 key가 있는지
< 문제 > 풀이해쉬를 이용해서 먼저 str1의 Hash map을이용해 Object로 만들고 만들어진 Map sh를 가지고str2를 반복돌면서 sh.has로 가지고있는지, 혹은 갯수가 0개인지 확인하는 풀이이때 확인할때 sh.get()이 0일경우 두단어는 아나그램
< 문제 >풀이해당 문제는 이중 for문(O^2)으로 돌아도 문제를 풀 수 있지만 해쉬 + 슬라이딩윈도우 + 투포인터알고리즘을 이용하면 O(n)으로 문제를 풀 수 있음.먼저 문자 t를 tH라는 해쉬맵으로 만들어주고, t의 개수 -1개 만큼 sH를 해쉬맵으로 채워준
< 문제 >괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.풀이스택을 이용한풀이 임으로 js pop메소드 사용(LIFO)stack이라
< 문제 >입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.풀이stack을 이용한 풀이. ()소괄호 사이에 존재하는 모든 문자를 제거하는것임으로 ()가로쌍이 항상 존재한다고 가정.반복을 돌면서 x가
< 문제 > 크레인 인형뽑기(카카오 기출)게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다.죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려 고 합니다.게임 화면은 1 x 1 크기의 칸들로 이루어진
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.만약 3(5+2)-9 을 후위연산식으로 표현하면 352+9- 로 표현되며 그 결과는 12입니다.▣ 입력설명첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +
< 문제 >여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에 서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레 이저의 배치는 다음 조건을 만족한다.• 쇠막대기는 자신보다 긴 쇠막대기
< 문제 > 자바스크립트 알고리즘 문제풀이정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다.정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다.
자바스크립트 알고리즘 문제풀이현수는 1년 과정의 수업계획을 짜야 합니다.수업중에는 필수과목이 있습니다. 이 필수과목은 반드시 이수해야 하며, 그 순서도 정해져 있 습니다.만약 총 과목이 A, B, C, D, E, F, G가 있고, 여기서 필수과목이 CBA로 주어지면 필
N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택 정렬 or 버블정렬입니다.▣ 입력설명첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각
캐시메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업 을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 작아 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시메모리 사용 규칙이 LRU 알고리
N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하 세요. 정렬기준은 먼저 x값의 의해서 정렬하고, x값이 같을 경우 y값에 의해 정렬합니다.▣ 입력설명첫째 줄에 좌표의 개수인 N(3<=N<=100,000)이 주어집
새 학기가 시작되었습니다. 현수는 새 짝꿍을 만나 너무 신이 났습니다.현수네 반에는 N명의 학생들이 있습니다.선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학 생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반
한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들 려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하 면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면
풀이1 O(nlog(n))주석 설명풀이2 O(n2)이중 for문 풀이
풀이 binary search(이분검색)binary search는 항상 정렬이 되어있을때만 사용가능하다.정렬이 되어있지 않을경우 sort메소드를 사용하게되는데sort메소드는 On(logn)이므로binary search의 O(logn)과 합쳐져서 On(logn)만큼의 시
지니레코드에서는 불세출의 가수 조영필의 라이브 동영상을 DVD로 만들어 판매하려 한다. DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 때에는 라이브에서의 순서가 그대로 유지 되어야 한다. 순서가 바뀌는 것을 우리의 가수 조영필씨가 매우 싫어한다. 즉, 1번 노
< 문제 >N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표를 가지며, 마 구간간에 좌표가 중복되는 일은 없습니다.현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간
자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요.▣ 입력설명첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.▣ 출력설명첫 번째 줄부터 각 줄에 하나씩 부분집합을 아래와 출력예제와 같은 순서로 출
N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요.둘로 나뉘는 두 부분집합은 서로소 집합이며,
이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제
1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력합니다.▣ 입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.▣ 출력설명첫 번째 줄에 결과를 출력
다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다.▣ 입력설명첫 번째 줄에는 동전의 종류개수 N(1<=N<=12)이 주어진다. 두 번째 줄에는 N개의
10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력합 니다.▣ 입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다. 두 번째 줄에 N개의 자연수가 오름차순으로 주어집니다.▣ 출
자연수 N을 입력하면 N!값을 구하세요. N! = n(n-1)(n-2).....21입니다. 만약 N=5라면 5!=5432\*1=120입니다.▣ 입력설명첫째 줄에 자연수 N(3<=n<=10)이 입력됩니다.▣ 출력설명첫째 줄에 N팩토리얼 값을 출력합니다.▣ 입력
1부터N까지번호가적힌구슬이있습니다.이중 M개를뽑는방법의수를출력하는프로그 램을 작성하세요.▣ 입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.▣ 출력설명첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를
N개의 정수가 주어지면 그 숫자들 중 K개를 뽑는 조합의 합이 임의의 정수 M의 배수인 개수 는 몇 개가 있는지 출력하는 프로그램을 작성하세요.예를 들면 5개의 숫자 2 4 5 8 12가 주어지고, 3개를 뽑은 조합의 합이 6의 배수인 조합을 찾으면 4+8+12 2+4