본문 바로가기

알고리즘 문제 풀이

(64)
프로그래머스[LEVEL2] - 오픈채팅방(2018 카카오 블라인드 코딩테스트) https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 전역으로 객체를 만들어서 record를 forEach메서드로 순회하면서 값이 Enter 혹은 Change면 user의 동작을 객체에 저장하였다 그리고 마지막으로 map 함수를 돌려서 배열로 결과를 출력하는 방식으로 해결했다
프로그래머스[LEVEL2] - 점프와 순간이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이 문제는 코드는 간단하지만 알고리즘을 생각하는데 시간이 많이 걸렸다 이동할 총 거리를 기준으로 순간이동할 수 있는 거리는 현재 까지 온 거리 +2이다 따라서 이동할 총 거리 /2 를 한 지점이 순간이동 할 수 있는 지점이다 만약 총 이동할 거리가 60이라면 30이 되는 지점에서 순간이동할 경우 60으로 이동할 수 있다 이때 이동할 경우가 짝수라면 순간이동으로 모두 이동할 수 있지만 홀..
프로그래머스[LEVEL2] - 캐시(2018 카카오 블라인드 코딩테스트) https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이 문제의 핵심 페이지 교체알고리즘인 LRU에 대해서 알아야 접근할 수 있는 문제이다 https://gomguard.tistory.com/115 페이지 교체 알고리즘 - LRU 페이지 교체 알고리즘 사회의 자원은 한정되어 있고 그 한정된 자원을 효율적으로 사용하기 위해 각종 법과 규칙이 존재합니다. 눈에 확연히 보이지 않아 무한할 것만 같은 컴퓨터 자원도 사실 gomguard.tisto..
알고리즘 - 유클리드 호제법 * 유클리드 호제법 2개의 자연수 또는 최대 공약수를 구하는 알고리즘의 하나이다 호제법이란 말은 두 수가 서로 상대방 수를 나누어 결국 원하는 수를 얻는 알고리즘을 나타낸다 2개의 자연수 a, b에 대해서 a 를 b 로 나눈 나머지는 r이라 한다면 a와 b의 최대 공약수는 b와 r의 채돼공약수와 같다 이 성질에 따라 b를 r로 나눈 나머지 r'을 구하고 다시 r을 r'로 나누는 과정을 반복하여 나머지가 0이되었을 때 나누는 수가 a와 b의 최대 공약수이다 자바스크립트에서의 유클리드 호제법 구현
백준 1406 - 에디터 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 풀이 left, right 라는 배열을 만들어 스택으로 사용하였다 커서의 왼쪽은 left 배열에 오른쪽은 right 배열에 push한다 이해를 돕기 위해 첫번째 입력 예제를 예시로 들면 1 첫 for 문을 통해 abcd 를 left에다 차례대로 푸쉬한다 - > [ a, b, c, d] 2 다음 P x가 나왔으니 left에 x를 푸쉬한다 -> [a, b, c, d, x] 3 다음 L이 나왔으니 ..
프로그래머스[LEVEL2] - 카펫 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 사실 1년 전쯤에 한번 풀었던 문제다 그때는 지금보다도 코테 문제 푸는 걸 어려워 해서 답지를 보고 이해하면서 풀었던 기억이 있다 다시 푸는 지금 문제를 완전 탐색을 이용해서 풀어야 겠다는 접근법도 보이고 그때보다 성장한거 같아서 뿌듯하다 문제는 방금 이야기 한대로 완전 탐색이다 노란 색 격자의 가로 + 2 곱하기 세로 + 2 는 전체 넓이와 같은 값이 나온다는 공식으로 모든 경우를 찾..
백준 1436 - 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 풀이 브루트 포스를 이용해 해결하였다 666이 들어가는 모든 숫자를 카운트하는 방식으로 문제를 해결하였다.
프로그래머스[LEVEL2] - JdenCase 문자열 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 먼저 문자열을 전부 소문자로 통일한 다음 첫 글자가 숫자가 아닌 문자이면 대문자로 바꿔주고 배열에 넣어서 마지막에 문자열을 합쳐서 출력해주는 방식으로 해결하였습니다.