프로그래머스
-
연습문제 3프로그래머스 2021. 5. 27. 20:29
소수 찾기 1, 처음엔 이중반복문으로 하나하나 소수인지 아닌지 판별한 뒤 count를 증가시키는 함수를 작성했다. n이 작은 수일때는 가능하지만 커지면 커질수록...답이없는 효율성에 타임아웃 2. 부트캠프 당시 동기와 알고리즘 문제를 함께 풀어보곤 했었는데 그 때도 소수의 벽에 막혔었다 ㅋㅋ ㅠ 동기분께서 팁처럼 말씀해주셨던 에라토스테네스의 체를 기억해내고 찾아봤다. 그리고 코드를 작성함. 먼저 빈 배열을 만든 뒤 arr의 인덱스와 숫자가 같게끔 요소를 넣어준다. 그담 이중포문을 이용해서 i의 제곱수에 i 씩 더하면서 해당 인덱스를 가진 요소를 false로 바꾸어주었다. 0과 1은 소수가 아니니 splice를 이용하여 false로 바꿔준뒤 true 를 가지고 있는 요소만 필터링. 그 후 arr의 leng..
-
연습문제 2프로그래머스 2021. 5. 27. 17:58
가장 작은 수 제거 math.min을 쓰고 싶었는데 스프레드 문법을 깜빡해서.... .이렇게 했다. 만약 스프레드 문법을 썼으면 arr.splice(arr.indexOf(Math.min(...arr)),1) 을 했을듯!! 정수 제곱근 판별 그냥 냅다 다 곱해서 비교해버리기 정수 내림차순 정렬 숫자 > 스트링 > 배열 > 정렬 > 스트링 > 숫자 바쁘다 바빠 현대생활 자연수 뒤집어 배열로 만들기 아휴 이것도 바쁘다 바빠 숫자 > 문자열 > 배열 > 뒤집기 > 숫자로 매핑 자릿수 더하기 ......제곧내 이상한 문자 만들기 ㅠㅠ map으로 안되려나? 했는데 안된듯 꾸역꾸역 해냈다 배열로 바꾼담에 ...... 대소대소대로 바뀐 친구들을 arr에 넣은 담에 string화 ~~! 약수의 합 1이랑 자기자신도 합쳐..
-
연습문제 1프로그래머스 2021. 5. 26. 17:07
직사각형 별찍기 처음엔 그냥 이걸..어케 사용해야 하는지도 모르겠어서 좀 헤매었다. 대부분 function solution 이렇게 시작하는데.. 그것도 아니고 리턴을 하는것도 아니어서 8ㅅ8 우선 b가 세로줄 수이고 a가 가로줄 수니 b만큼 str을 만들고 콘솔에 찍어줬당 그리고 a만큼 별찍기 x만큼 간격이 있는 n개의 숫자 n이 배열 요소 수니까 n만큼 반복문을 돌리고 그때마다 0에서 x만큼 증가한 숫자를 푸씨~! 행렬의 덧셈 별찍기랑 구성이 비슷하네.. arr1과 arr2의 길이는 같으니 arr1의 길이만큼 배열을 만들고 arr1요소의 길이만큼 배열에 요소끼리 더한걸 넣고,,, 그담에 앤써에 푸씨... 핸드폰 번호 가리기 별표처리할 자릿수를 폰넘버에서 4를 뺀 뒤 구했다. 그담에 뽀문을 돌렸는데 다른..
-
체육복프로그래머스 2021. 5. 25. 20:44
1. 우선 서로 앞 뒤 번호만 체육복을 빌려줄 수 있기 때문에 lost 배열과 reserve배열을 sort시켰다. 그담에 answer(수업을 들을 수 있는 인원)를 전체 인원에서 체육복 잃어버린사람수만큼 빼서 설정해두었다. 글구 여분 체육복이 있는 칭구들도 체육복을 도둑맞았을 수 있기 땜시 indexOf에 인덱스 값이 나오면 reserve배열에서도 삭제하고 lost배열에서도 삭제한 뒤 answer를 증가시키는 포문을 만들었다. 그 후 이중포문을 이용해 앞 뒤로 빌려줄 수 있는 번호가 있으면 배열에서 뺀 뒤 answer를 증가시켰다. 이렇게 테스트를 진행해봤는데 3문제가 통과가 되지않았다. 2. 그래서 첫번째 포문대신 filter를 사용해봤고 결과는 통과했다! 첫번째 코드는 왜 안됐을까라는 고민을 하다가 ..
-
완전탐색 - 모의고사프로그래머스 2021. 3. 24. 20:27
1. 아... 솔직히 말해서 노가다밖에 생각 안났다. 노가다로 한담에 리팩해보자 해서 우선 해봄.. 2. ㅋㅋㅋㅋㅋㅋㅋ아 ㅠㅠㅠㅠ 전부 통과되긴하는데 너무 수치스러운 코드다. 배우려고 하는거니까..함 바주세요 그래서 다른사람의 코드보기를 했음 3. (1) 최고득점자를 나타내기 위해 배열 answer를 선언하고, 1,2,3번 학생 답안지 또한 선언해둔다. (2) filter메소드를 통해 각자의 답안지와 answers의 답안지 중 일치하는 것을 뽑아낸 뒤 그것의 length를 변수에 지정한다. (3) 변수로 지정한 length 중 가장 큰 수 (고득점)을 알아내기 위해 Math.max를 사용해서 뽑아낸다. (4) 마지막 조건문으로 고득점과 각자의 점수가 같으면 답안배열answer에 push한다. 4. ㅜㅜ ..