[Programmers]혼자 놀기의 달인/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131130# 접근방법 문제가 길어서 문제 읽는 것부터 힘들었다.. 테스트 케이스에는 [8, 6, 3, 7, 2, 5, 1, 4]가 입력으로 들어온다. 먼저 첫번째를 선택했을 때, 두번째를 선택했을 때 ... 다 손으로 써봤다. 첫번째를 선택했다 해보자. 그리고 인덱스가 0이 아닌 1부터 시작한다고 가정한다. 인덱스를 기준으로 1 -> 8 -> 4 -> 7 이렇게 4개의 상자를 거치고, 1, 8, 4, 7 중 어떤 것을 먼저 선택하든 똑같이 4개를 거친다. 그리고 처음 선택한 인덱스의 값이 나올 때까지 반복한다! 정답코드 function solution(cards) { let answer = ..
[Programmers]삼각 달팽이/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 규칙 찾고 싶어서 난리치다가 찾아낸 규칙! 왼쪽 대각선, 아래 직선, 오른쪽 대각선 세 선을 반복해서 돈다는 사실을 발견했다. 이차원 배열로 만들어서 인덱스를 보면 인덱스에도 규칙이 있다. 왼쪽 대각선 -> 행의 값을 1씩 늘리면서 값도 1씩 증가 아래 직선 -> 선을 따라서 값이 1씩 증가 오른쪽 대각선 -> 행과 열의 값을 1씩 감소시키면서 값을 1씩 증가 그리고 규칙이 적용..
[Programmers]땅따먹기/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 같은 열만 안밟으면 되는 문제인줄 알고 그렇게 풀었다가 테스트가 다 실패했다.. 당황해서 문제 다시 정독해보니 얻을 수 있는 점수의 최대값을 return 알고보니 DP 문제였다. 문제를 보고 DP 문제인지 파악하는 것부터 어려운데.. ㅠㅅㅠ DP로 푸니까 뚝딱 풀리는 문제였다! 처음코드 == 다 실패한 코드ㅋ function solution(land) { var answer = ..
[Programmers]가장 큰 정사각형 찾기/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12905# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 정답부터 말하자면 이 문제는 DP문제이다(난 몰랐음) 배열을 다 돌면서 확인해야되나? DFS인가? 혼자 고민고민하다가 뭔가 정해진 풀이가 있을 거 같아서 구글링해봤다 원래같았으면 몇시간동안 이리저리 풀어봤을텐데 뭔가 삘이 왔어 내가 못풀거라는 삘.. DP란 큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용하는 방식이다. 반복문을 돌면서 이전에 구해놓은 길이와 비교하면서 ..
[Programmers]게임 맵 최단거리/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 처음엔 DFS?BFS? 뭐로 풀어야 할 지부터 고민했다. 그래서 개념부터 찾아봤더니 최단거리문제는 BFS로 풀어야한다해서 BFS 구현하고 문제에서 원하는 조건 몇개만 추가해주면 되겠다라고 생각했다.(말이 쉽지..) 처음코드 function solution(maps) { var answer = 0; let visit = Array.from(new Array(maps.length), ..
[Programmers]구명보트/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 최대 2명!! 제한 조건이 걸려있기 때문에 딱히 어려운 문제는 아니였다. 먼저 정렬해야겠다는 생각이 들어서 오름차순 정렬을 해줬다. 가장 가벼운 사람(왼쪽=0)과 가장 무거운 사람(오른쪽=배열길이-1)부터 시작해서 그 다음으로 무거운 사람, 그 다음 무거운 사람... 쭉 비교해보고 두 사람의 무게의 합이 limit 범위 내의 무게이면 인덱스를 앞 뒤로 하나씩 땡겨주면 된다. 조건..