전체 글

· TIL
오늘부터 개인 프로젝트를 시작했다. 주어진 과제는 다음과 같았다. 영화 open API를 이용해 영화 데이터를 가져온 후 웹에 구현하기 (영화 이미지, 영화 제목, 내용, 평점) 웹에 구현한 내용을 클릭하면 영화 ID가 alert창에 뜨도록 하기 영화 검색 기능 구현하기 처음에는 이 기능을 어떻게 구현하면 좋을지를 생각하며 프레임워크를 짜봤고 어떤 기능이 추가적으로 들어가면 좋을지 생각해봤다. 우선 가장 기본적인 필수과제부터 넣기로 했다. 기본적인 css는 주어진 예시파일의 css 기본틀을 차용했고 따로 display : grid를 적용해서 웹 구역을 나눠주었다. 또한 추가적으로 들어갈 기능들을 구상해봤는데 로그인 기능 넣기, 로그인에 따른 영화 장바구니 만들기. 각 영화정보 카드에 좋아요 누르면 좋아요..
· Algorithm
문제 및 제한사항 나의 풀이 문제의 내용을 간단하게 요약하자면 다음과 같다. 사과의 가격을 나타내는 배열인 score가 주어질 때 사과를 m개씩 한상자로 묶고 m개를 충족시키지 못하는 사과는 버린다. 이 때, 사과 한 상자의 가격은 상자 내 제일 낮은 사과 가격 * m(상자 내 사과의 개수)이고 최대 이익을 낼 수 있는 방법으로 사과를 팔아야 한다. 이 문제를 보고 구상한 바는 다음과 같다. 1. 사과 상자에 담기지 않는 사과 버리기.(제일 싼걸로) 1-1. 사과를 버리기 위해 내림차순으로 사과를 정렬해 준 뒤 m의 배수가 되지 않는 사과 버리기(slice) 2. 사과 박스에 들어갈 수 있는 사과만을 남겨두었고 배열을 내림차순으로 정렬되었기 때문에 사과 한 박스 한 박스에 들어 있는 (score의) 인덱..
· Algorithm
문제 및 제한사항 나의 풀이 이 문제를 보자마자 같은 종류의 포켓몬이 몇 마리인지는 중요하지 않다는 생각이 들었다. 생각해본 문제 풀이는 아래와 같다. 1. nums의 중복을 없앤다. 2. 중복을 없앤 새로운 배열을 만든다. 3. 새로운 배열이 nums의 길이보다 길경우 nums의 길이/2를 리턴, 아닐경우 새로운 배열의 길이를 리턴 문제 풀이는 구상한 방식과 똑같은 형태로 진행해주었다. 문제 풀이를 조금 간단하게 설명해보자면 우리는 최대한 많은 종류의 포켓몬을 가져와야 하기 때문에 똑같은 포켓몬을 가져오지 않도록 중복을 없애주었다. 또한 최대로 많이 뽑을 수 있는 수가 nums.length/2 이므로 중복을 제거한 배열이 nums.length/2보다 크다면 nums.length/2가 최대로 뽑을 수 있..
· Algorithm
문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a,b를 입력받아 2016년 a월 b일이 무슨요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN, MON, TUE, WED, THU, FRI, SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다.) 입출력 예 a b result 5 24 "TUE" 나의 풀이 이번 문제의 풀이는 딱히 없다. 2016년 a월 b일을 Date 객체로 만든 뒤에 getDay()라는 메서드를 ..
· Algorithm
문제 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. 한 번 사용한 카드는 다시 사용할 수 없습니다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i","drink","water"], 두 번째 카드 뭉치에 순서대로 ["want","to"]가 적혀있을 때 ["i","want","to","drink","water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한 후 두 번째 카드..
· Algorithm
문제 "명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다. 이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일동안 진행된 가수의 점수..
· Algorithm
문제 및 제한사항 나의 풀이 처음 문제를 딱 보고 '어? 그냥 반복문 돌리면 되는거 아냐?' 라고 생각이 들었다. 하지만 문제를 조금 더 자세히 보고 나니 반복문으로 문제를 풀게 되면 바꾸지 못한 빈병과 남은 빈병의 합이 2 이상일 경우 빈병을 다시 콜라로 바꿀 수 없다는 문제가 존재했다. 여러 시도를 해본 뒤 '재귀함수'를 사용해서 풀면 되겠다는 생각이 들었다. 현재의 빈 병(n)이 a보다 클 경우 빈병을 주고 새로 받아온 콜라의 수를 리턴함과 동시에 다시 '남은 빈병'과 '새로운 콜라'를 '빈병의 수'를 가리키는 n에 넣어서 n=a가 될때까지 반복시켰다. (새로 받은 콜라를 넣어준 이유는 어차피 다 먹고 난 뒤 빈 병이 되기 때문이다.) n < a일 경우 'return 0'을 해줌으로써 마지막 ret..
· Algorithm
문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return하도록 solution함수를 완성해주세요. 제한 사항 numbers의 길이는 2이상 100이하입니다. numbers의 모든 수는 0이상 100이하입니다. 입출력 예 numbers result [2, 1, 3, 4, 1] [2, 3, 4, 5, 6, 7] [5, 0, 2, 7] [2, 5, 7, 9, 12] 나의 풀이 문제를 풀기에 앞서 문제의 해결방안과 순서에 대해 생각해봤다. 1. 두 개를 뽑아 더한다 2. 뽑은 값의 중복을 제거한다. 3. 새로운 배열에 넣는다. 4. 배열을 정렬한다. 첫 시작은 map과 forEach 메서드를 ..
· TIL
오늘도 어김없이 새로 마주치게 되는 새로운 메서드들. 몇 개는 본 적이 있고 몇 개는 처음 보는 메서드이지만 확실하게 복습할 겸, 머릿속에 넣어두기 위해 정리하려고 한다. tofixed() : Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후 그 값을 문자열로 반환합니다. 특강을 듣다 우연찮게 발견한 친구이다. 특강 중 소수를 정수로 변환하는 작업을 하는 과정을 누군가가 tofixed로 해결했다. (나도 나중에 써먹어야지..) // 기본적인 사용 방법 numObj.toString([소수 자릿수]); let numbers = 1.2345; numbers.toString(); // 1 numbers.toString(1); // 1.2 numbers.toString(2); // 1.23 n..
윤찬님
찬이_Devlog