Problem Solving 76

[프로그래머스/JavaScript] 카펫

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 처음에는 어떻게 풀어야 할지 감이 안 오다가, 완전탐색 문제는 어차피 하나하나 확인하는 수밖에 없다고 생각하고 풀었더니 맞히게 되었다 우선 노란색 격자들이 안쪽에 배치되고, 이후에 그 둘레를 갈색 격자들이 감싸고 있는 형태이기 때문에 노란색 타일이 어떻게 배치되느냐에 따라 카펫의 가로, 세로 길이가 결정되므로 난 먼저 노란색 타일을 깔아본다고 생각했다. 하지만 여기서, 가로의 길이가 세..

[프로그래머스/JavaScript] H-Index

https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 사실 별 거 없는 문제인데 문제의 예시가 citations 배열 내의 값이어서 한 가지 착각을 했다 문제의 답은, 즉 h-index는 ciations 배열 안에 없을 수도 있다는 것! 이것만 생각하면 그냥 0부터 citations 의 길이만큼 돌면서 h-index를 갱신해나가면 된다 간만에 level 2 치고 좀 간단했던 문제! 2) 최종 소스코드 f..

[프로그래머스/JavaScript] 구명보트

https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 이 문제는.. 진짜 며칠간 풀었었다 사실 풀고 나니까 와.. 진짜 별 거 아니었구나 싶은데 왜 그렇게 안 풀렸는지😂 처음에는 단순하게 그냥 구명보트 개수 변수 count, 현재 사람과 구명보트를 탈 수 있는 최대 무게 find, 그리고 현재 요소 cur을 변수로 두고 문제를 풀었다 그리고 효율성을 위해 내림차순으로 sort 시켰는데, 내림차순으로 한 이유는 그냥 제일 작은 요소부터 꺼내..

[프로그래머스/JavaScript] 다음 큰 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 레벨2에 들어와서 유독 진법변환 문제를 많이 푸는 듯~ 덕분에 진법 변환하는 건 완전히 익혔다 이 문제는 내가 이제까지 익힌 것들을 모두 총정리하는 느낌이었다 1. toString(2) 으로 이진법으로 표현할 수 있음 2. 문자열을 spread 문법으로 펼치면 배열 만들 수 있음 3. filter()는 배열 각 요소에 대하여 주어진 함수의 결과값이 true인 모든 요소 모아서 새 배열 ..

[프로그래머스/JavaScript] 이진 변환 반복하기

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 저번에 자바스크립트에서 진법 변환하는 방법을 올렸었는데, 그거에 대한 응용 ver 라고 생각이 드다 이 문제에서는 이진변환을 하는데, 이진 변환에는 총 두 단계가 있다 x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 이 두 단계를 마치면 이진변환 한 번이 완료되는 것이다 1번의 경우에는 split을 이용했다. split 함수 안..

[프로그래머스/JavaScript] 피보나치 수

https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 문제 자체는 어렵지 않은데, 자꾸 오답이 나와서 프로그래머스 질문하기 를 이용했던 문제이다 피보나치 하면 재귀함수로 구현하는 것이 제일 먼저 생각나서, 나도 처음에는 재귀함수로 풀었었는데 시간초과와 런타임에러가 나서 for문을 이용하여 각각의 값을 계산해 배열에 넣어주는 방식으로 바꿨다 코드 실행하기를 누르면 전부 정답이고, 제출했을 때도 6번까지는 맞는데 왜 7번부터 오답이 나는지 이..

[프로그래머스/JavaScript] 3진법 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 사실은 예전에 자바스크립트로 푼 문제인데 새로 풀어보니 또 다른 방식으로 풀게 되었다 자바스크립트에서 진법 변환하는 건 그렇게 어렵지 않은데 막상 써먹으려고 하면 잘 기억이 안 나서 😥 어쩔 수 없이 숫자 하나하나 진법 변환을 해주었지만 나름대로 의미가 있는 것 같아 풀이를 써보겠다 단순하게 인자로 받은 값을 우선 3진수로 바꿔주었다 3으로 나눈 나머지를 tmp 라는 배열에 저장한 후,..

[프로그래머스/JavaScript] JadenCase 문자열 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 요새 통 풀이를 적지 못했다..! 사실 문제는 좀 풀었는데, 풀이 적는 것에 권태기가 와서,, 많이 밀려있다 그래도 복기하는 것이 중요하니 오늘부터 열심히 적어봐야겠다! 레벨1을 자바스크립트로 얼추 다 풀고, 레벨 2 푸는 중 아직까지는 정답률이 높은 문제만 풀고 있어서 큰 난관은 없다! 이번 문제는 저번에 풀었던 문제랑 비슷한 것 같다 이상한 문자열 만들기 였나, 그거랑 비슷한 것 같..

[프로그래머스/JavaScript] 올바른 괄호

https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 사실 휴학시절에 c++로 제일 많이 풀었던 문제가, 올바른 괄호인지 아닌지 스택을 이용해서 체크하는 문제였어서 레벨 2여도 손쉽게 풀 수 있었다! 테케도 다 맞고, 정답 제출에서도 모두 정답으로 나왔는데 내 발목을 잡는 건 효율성 문제 였다 😥 일단 문자열 s 를 탐색하면서 ( 여는 괄호의 경우에는 스택 배열에 넣어주고, ) 닫는 괄호일 경우 stack 의 제일 최근 요소를 pop 해서..

[프로그래머스/JavaScript] 2016년

https://school.programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 이 문제는 우선 두개의 배열을 먼저 만들었다 하나는 요일을 출력하기 위해 요일 출력문구를 담아놓은 배열(days)이고, (이 배열은 금요일부터 목요일의 순으로 만듦. 1월 1일이 금요일이라는 설정때문에!) 다른 하나는 12개월동안의 한달의 날짜 수(cal)이다. 우선 인자로 받는 월, 즉 a 이전 달까지 날짜 수를 더해준다. 배열로 돌리면 금방 돌리고, 바로 거기에 ~일, 을 나타내는 ..

728x90