코딩테스트 대비 53

BOJ - 1181 단어 정렬

문제 : https://www.acmicpc.net/problem/1181문제 등급: 실버5문제 풀이: 길이가 짧은 것부터라는 조건이 있으니 정렬 기능이 들어가야 할 것이라 생각했고 또한 중복된 단어는 허용하지 않는다는 조건으로 인해 Set 즉 집합 조건을 생각할 수 있었다. 길이가 같으면 사전순이라는 말 또한 JS에서는 return 1 , 0 , -1 을 통해 오름차순 , 동치 , 내림차순을 필터링 해준다는 것을 알 수 있었다. 시간복잡도 : O(NlogN)const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let N = Number(input[0]);// 1. 입력 받음let arr = [];..

BOJ - 15651 좌표 정렬하기 2

문제 : https://www.acmicpc.net/problem/16953문제 등급: 실버 5 문제 풀이 :  11650번과 반대로 이번에는 y좌표가 증가하는 순으로 먼저하고 , y좌표가 같을 땐 x 좌표가 증가하는 순을 찾으면 된다. 즉, compare 함수에서 a[1]-b[1] 을 먼저 기준으로 고려해주면 된다.시간복잡도: 정렬 방법을 사용했기 때문에 O(NlogN)으로 볼 수 있다. const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let N = Number(input[0]);let arr = [];for(let i=1;i

BOJ - 11650 좌표 정렬하기

문제 : https://www.acmicpc.net/problem/11650문제 등급: 실버5 문제 풀이 : x좌표 기준으로 오름차순 정렬 후 같으면 y좌표 증가하는 방식이다. const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let N = Number(input[0]);let arr = [];for(let i=1;i 배운 것 : a[0] , b[0]  / a[1], b[1] 에 대해 설정한 것은 예시로 들면 다음과 같다.만약 arr 이 [ [1,2] , [2,3] ,[3,5] ] 이런 식으로 들어가 있을 때 a[0]은 1 , b[0]은 2와 같다.이런 식으로 a[0] = 2 , b[0] = 3..

BOJ - 11004 K번째

문제 : https://www.acmicpc.net/problem/11004문제 등급 : 실버 5 문제 풀이 :  두  수를 받아서 이를 정렬 한 다음 주어진 K를  index로 하는 수(K-1)를 console.log로 찍어주면 된다.const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let [N,K] = input[0].split(" ").map(Number);let arr = input[1].split(" ").map(Number);for(let i=1;ia-b);console.log(arr[k-1]); 배운 것띄어쓰기 기준으로 한 줄에 여러 개 받는 것 : input[0].split(" "..

BOJ - 2750 수 정렬하기

문제 : https://www.acmicpc.net/problem/2750문제 등급 : 브론즈 2 문제 풀이 : 2752번 처럼 여러 수를 받는 것을 동일하나 한 줄에 받는 것이 아닌 여러 줄을 받아야 하기 때문에 반복문으로 돌리고 빈 배열인 arr에 push 해줌. const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let N = Number(input[0]);let arr = [];for(let i=1;ia-b) let answer = ""; for(let i=0;i시간 복잡도 : 정렬방식을 사용했기 때문에 O(NlogN)

BOJ - 2752 세 수 정렬

문제 : https://www.acmicpc.net/problem/2752문제 등급 : 브론즈4 문제 풀이 : 단순 정렬하는 문제다. : 세 수 한 줄에 입력 받아서 오름차순으로 정렬해주면 끝 문제 코드const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");arr.sort(function(a,b){ return a-b;})let answer = ""; // JS 에서는 console.log 반복문으로 반복하는 것보다 문자열에 한 번에 담는게 유리 for(let i =0;i 시간 복잡도 : O(NlogN)

BOJ - 11005 진법 변환 2

https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 앞서 풀었던 진법 변환 (2745번)에 이어 두 번째 진법 변환 문제다. B진법인 수를 10진법으로 출력했더라면 이번 문제는 그 반대로 10진법 수 N을 B진법으로 출력하는 문제다. 이번에도 진법 변환 문제처럼 N,B를 입력받고 그 다음 0부터 Z까지 포함된 리스트를 만들어주었다. 풀이 과정은 아래와 같다. 예를 들어 372 라는 10진수 숫자를 생각해보면 10으로 나누면 몫은 37이고 나머..

BOJ - 2745 진법 변환

기본부터 다시 시작하자는 마음으로 퇴근하고 기본 문제라도 하루 1~2문제는 풀자고 마음 먹었다. 하반기때는 부디 코테로 발목 잡히지 않기 위해 열심히 해야겠다..! https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 1. 풀이 진법 변환에 대해 생소해서 규칙을 찾는데 애를 좀 먹었다. ex) 2진법 -> 10진법 11111 -> 2**4 + 2**3 + 2**2 + 2**1 + 2**0 = 31 왼쪽 수 부터 갯수만큼 진법으로 바꾸고자 하는 수의 거..

프로그래머스 이모티콘할인행사

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 풀이 문제 풀이는 떠오르는데 막상 코드로 작성하기가 어렵다..꾸준히 보는 것만이 답인 것같다.. 그래도 점점 문제를 보면서 어떤 식으로 접근 할 지 떠오르는 점에 의의를 두고자 한다. 이번 문제는 카카오 문제였는데 아래처럼 접근하고자 했다. 1) 먼저 할인율을 10, 20 , 30 ,40% 로 나누고 이를 적용한 할인가격을 비교하려 했다. => 할인 가격을 비교하는 것보다 먼..