자바스크립트 배열의 요소間 비교를 할 때가 자주 있다. 그럴때 보통 반복문을 두개 사용해서 비교를 했는데, reduce() 함수를 사용하면 배열에 있는 요소들을 서로 비교 할 수 가 있다.이라는 배열이 있다. 이 배열의 최댓값을 구하는 작업을 하기 위하여 reduce
삽입정렬이란, A와 B가
count를 사용하는 방법을 몸에 익히도록 해야겠다.
출처 - https://www.geeksforgeeks.org/c-program-for-tower-of-hanoi/하노이 탑의 문제를 해결할 때 중요한 것은, 이 하노이 탑은 재귀함수 를 사용 해야한다는 것이다.먼저 위의 그림을 보도록 하자. 원반이 3개 일때
// 에라토스테네스의 체
출처: 제주코딩베이스켐프 자바스크립트 알고리즘 93번문제 -내가 푼 답선입선출 은 맨 처음에 들어온 것을 바로 빼는 것이다. (군대, 미소지기 할떄 안하면 혼나는거..ㅠㅠ)근데 위와 같이 메모리 위치는 변하지않고 일찍들어온 순서대로 바꿔주는 식으로 하려면 memory에
출처 : 제주코딩베이스캠프 94번이 알고리즘은 제일 마지막으로 쓰인 것을 없애고 새로운 데이터를 넣어주는 알고리즘이다.(폐기 찍는 느낌으로 해야하나..)실제 답안에서는, memory 배열 하나만 사용해서 답을 풀었는데, (아마 실행시간을 출력하는게 답이라서 그런 것 같
출처 : 제주코딩베이스켐프 JAVASCRIPT 알고리즘 100제 - 100번조작하는 값 (controls\[0] or contols.shift()) 과 퍼즐의 칸(col)의 index 값과 같고, 그 칸에 있는 값이 0이 아니면 점수 칸stack에 넣어준다.주의해야할
강의를 보며 기록해야할 부분만 작성.1이 될 때까지 입력받은 N을 K로 나누거나, N을 1을 빼는 최소 횟수를 구하는 문제최소 횟수 를 구하기 위해선, 나누는 것을 많이 할 수록 최소 횟수이다. (1을 빼는 것을 적게하자)내가 문제를 풀 때 나온 것은 재귀로 풀었는데,
파이썬 초보자가 쓰는 파이썬 알고리즘 문제 풀이 하며 알게 되는 지식들을 모으는 중 입니다.enumerate(Iterable) 리스트를 순회 하며 리스트의 인덱스 값을 알 수 있게 해주는 함수 입니다.자바스크립트의 경우 foreach() 함수나 map() 함수를 사용
들어가기전에, 프로그래머스 완전 탐색 소수 찾기 문제를 풀면서 순열을 사용해야하는 것은 알았지만, 코드로 구현하기 가 어려워서 인터넷을 보며 참고 하고 공부한 사항을 정리 순열 nPr ==> n개의 순서를 고려해서 r개의 열 을 세우는 것. 선택 한 것이 r개가
Heapq 란, 우선순위 큐 를 의미한다. 최소값 부터 오름차순 으로 이루어진 큐 출처 - https://python.flowdas.com/library/heapq.htmlHeapq 모듈을 사용해서 heappush, heappop 을 이용하면 힙 불변성을 유지
출처 - https://en.wikipedia.org/wiki/Depth-first_searchstack 자료 구조를 사용한다1.1. stack 은 Last In First Out 의 자료구조이다. 다시말해, 먼저들어 온 것이 가장 늦게 나가는 자료구조 이다.
저 완주하지 못한 선수는 예전에 javascript로 문제 풀 때 문제 풀기전에 해답을 봐서 풀린 문제로 안넘어가서 저거 제외 하고 모든 문제를 해답을 보기전에 오늘 하루만에 다 풀었다. 한 6시간 정도 걸린 것 같다.일단, 소수찾기(에라토스테네스의 체 이용), 다수의
정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.반
맨처음 글자 부터 맨처음 글자 ~ 글자의 반을 모두 찾으면서, 그 것들을 반복되는 문자열(길이) 로 보고, 그 길이에 맞춰서 문자열을 모두 확인 하며,동일하면, count 를 증가 시킨다.만약 동일하지 않고, 전에 동일한 것의 갯수(count)가 1보다 크다면, 현재
orders 에 있는 메뉴들 중에서 course개 만큼 뽑아서, 뽑은 것들 중 가장 많은 것 들을 모아서 return 하면 된다.조합 을 이용하여 course 배열 안에 있는 원소들의 값 만큼 orders 에서 뽑는다.course 배열 안에 있는 원소들을 조합을 이용하
직접 문제를 풀다가도 최적의 해가 맞는지 아닌지 계속해서 햇갈리는데, 테스트 케이스가 통과되서 놀랐다.다른사람들 풀이도 보았는데, 실제로 못 써먹을 것 같아서 일단 내풀이로 작성!누가 볼진 모르겠지만, 완벽한 풀이가 아니기 때문에 그냥 가볍게 보고 가시면 좋겠다!먼저
내 풀이는 현재 가장 큰 수의 위치에서 없애야 하는 것의 남은 수 를 더한 위치 까지 가장 큰수를 찾아서 그 큰 수를 다시 가장 큰수로 만드는 것이다.그리고 각각의 가장 큰 수 들을 문자열로 더해서 반환을 하는 방법으로 하였다.하지만, 이렇게 하는 과정에서 빼야 되는
이 문제는, 접근법이라고 할게 없다. 문제에 나와 있는 방법대로 구현을 하면 되기 때문이다. 하지만, 말이 너무 복잡하고 구현 해야 하는 것도 복잡하기 때문에... 시간이 좀 걸렸다 ㅠㅠ 물론 내 능력이 아직 부족 해서 그런 것 같지만 ㅠ3\. 문자열 U가 "올바른 괄
가장 작은 몸무게와 가장 큰 몸무게를 같이 함께 보트에 태워야지 가장 적은 수의 보트를 사용 할 수 있다.먼저 people 의 몸무게가 들어있는 배열을 먼저 오름차순으로 정렬을 해준다. 가장 몸무게가 적은 사람과, 가장 몸무게가 큰사람과의 몸무게의 합이 limit 보다
먼저 이 문제를 효율성에 맞춰서 풀기 위해서는 Dynamic Promgamming(동적 프로그래밍) 알고리즘을 사용해야한다동적 프로그래밍 알고리즘 이란, 큰 케이스를 작은 케이스로 나눠서 작은 케이스들을 계속해서 검사하는 Top - Down 방법과작은 케이스 부터 검사
위의 예시에서 14원을 거슬러줄 수 있는 방법은 아래와 같다.이를 봤을떄, 현재 change 에서 각각의 동전의 값을 뺀 값의 갯수 + 1 중에서 가장 작은 값을 return 해주면 된다.이렇게, 큰 값(14원) 의 갯수 를 작은 값(13원 일때, 12원 일때, 7원
문제 접근법 잘못된 접근법 각 행에서 가장 큰 수를 찾는다. (이전 열과 동일한 열 제외하고) 가장 큰 수들을 더한다 잘못된 이유: [[2, 3, 4, 5], [1, 1, 1, 1000]] 일때, 첫번 째 행부터 각 행을 검사해서 가장 큰 수를 더할 때,
이 문제는 아무리 풀어도 효율성이 떨어졌다. 그 이유를 알기 전에 내가 접근했던 방법에 대해서 말하자면,숫자를 표현하는 방법이 숫자 1개로 표현하는 방법,숫자를 2개로 표현하는 방법 ⋯ 숫자 N개로 표현 하는 방법이 있다고 생각했다.숫자 N개를 1부터 계속해서 증가
앞부분의 행렬의 열과 뒷부분 행렬의 행의 갯수가 같을 때, 앞부분 행렬의 행과 뒷부분의 행렬의 열을 각각 행, 열로 갖는 새로운 행렬을 갖는 것이다.(A x M) X (M x B) 는 A x B 의 행렬이 만들어진다. A x B 의 각각의 요소는, A x M 행렬의 행
소수찾기 알고리즘 소수란, 1과 자기 자신을 제외한 숫자로 나누어 떨어지지 않는 숫자를 의미한다. (즉, 약수가 1, 자기자신 을 제외하고는 없음을 의미) 소수는 어떻게 찾을까? 효율적이지 못한 방법 1. 2부터 값의 이전 값 까지 숫자를 1 씩 올려가며 나눠 떨
최대 공약수란, 숫자 a, b가 주어졌을 떄, 공통되는 약수 중에서 최대 값을 의미한다.찾지 않아도 되는 약수들 까지 구해야하기 때문에 효율적이지 않다.유클리드 호제법이란, 숫자 a, b가 있을 때, a를 b로 나눈 나머지와 b 의최대 공약수 는 a 와 b 의 최대 공
가운데 기둥을 이용해서 왼쪽 기둥에 놓인 크기가 다른 원판을 오른쪽 기둥으로 옮기는 문제,이 때 원판은 한번에 한 개씩만 옮길 수 있으며, 작은 원판 위에 큰 원판이 놓일 수 없다.재귀 풀이를 이용하여 푸는 문제중에서 가장 유명한 문제.그러면 어떻게?일반화를 하기 위해
N개의 여왕을 N X N 체스판에 잡아 먹히지 않도록 놓는 방법 의 수를 찾기. (여왕은 대각선, 같은행, 같은열에 있는 것들을 먹어 치운다)N개의 여왕을 각각 N개의 행에 자리를 준다.2번째 열부터 대각선에 여왕이 있는지, 같은열에 여왕이 있는지 검사한다.재귀호출을
return 해야하는 수: 정확하게 순위를 매길 수 있는 선수의 수\-> 정확하게 순위를 매길 수 있을 경우를 알아 내야 한다.입출력 예 에서 알 수 있는 것 2가지어떤 선수 A가 B를 이겼으면 B가 이긴 선수들은 A가 이긴다.어떤 선수 A가 C한테 졌으면 C를 이긴
Graph에서 원하는 노드 start node 에서, 특정 노드 target node 까지 가는 최소비용 찾는 알고리즘우선순위 큐우선순위 큐를 이용하면 가장 작은 비용의 값만 pop() 할 수 있다.이를 이용해서 작은 비용의 값만을 비교해서 traget node 까지
문제설명가장 먼 노드란, 자신밑에 하위노드가 없는 노드가 아니라 1 에서 가장 먼 노드 를 의미한다.각 노드가 1로부터 얼마나 떨어져 있는지 알면 쉬움.BFS 를 사용해서 각 노드가 얼마나 떨어져 있는지 확인하자. (현재 노드까지의 거리 = 이전 노드의 거리 + 1)
문제설명 S의 길이가 n이라고 할 때, 0부터 N - 1 까지 의 문자열 이 가장 긴 문자열이다. 즉, 0부터 N-1, N-2, N-3, ... , 0 까지, 1부터 N-1, N-2, ... , 1 까지 ⋯⋯ N부터 N까지 이런 식으로 반복하며, 각각의 문자열이 펠린