목록코딩테스트 (71)
seunghyun Note
링크 : https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 문제 풀이 1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000) stack.push() 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. stack.pop() 3: 스택에 들어있는 정수의 개수를 출력한다. stack.length 4: 스택이 비어있으면 1, 아니면 0을 출력한다. stack의 empty여부 확인 5: 스택에 정수가 있다면 맨 위의 정수를 출력한다..
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 스택과 큐유형이어서 어려울 거 같아서 걱정했지만 로직만 이해하면 간단했다. O(n^2)이 되고 싶지 않아 최대한 O(n)이 될 수 있는 방법을 생각했다. 그래서 표를 그리면서 언제 push를 할까...? 고민을 많이 했다. 안 좋은 코드라고 생각했지만 그래도 다른 사람들의 코드와 비교했을 때 깔끔했던 거 같다. 📌 새로운 배열을 정의해야 한다. 1-1 progresses배열은 ..
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 고득점 키트에 해시가 있어서 문제를 해결해보려고 했다. 1. 해시를 담을 테이블을 생성한다. 2. phone_book의 배열값(문자열)을 index에 넣고 true로 값을 채운다. 3. 다시 문자열 배열을 순회시키면서 slice를 통해 [1,2,3] 이면 [1] , [1,2]까지만 pre로 넣어서 테이블에 있다면 return false를 하고 최종적으로 없으면 return tr..
링크 : https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 풀이 1. cro 배열에 크로아티아 문자를 넣어준다. 2. 순회 시켜 replaceAll을 통해 있을 경우 "x"로 바꾼다 (x가 아닌 다른 문자여도 된다. 하지만 cro배열에 있는 요소면 안된다.) 3. 마지막으로 순회가 끝났다면 문자열의 길이를 측정해서 출력한다. const fs = require("fs"); const input = fs.r..
링크 : https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제 풀이 1. reverse와 join을 사용해서 reverse 된 값을 비교해서 return 하기 const input = require("fs").readFileSync("/dev/stdin").toString().trim(); const reverse = input.split("").reverse().join(""); console.log(input === reverse ? 1 : 0);
링크 : https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제 풀이 이진트리, 2중 for문(시간 초과로 문제 해결이 안 된다.) 등 다양한 방법이 있지만 해시를 공부하기 때문에 해시를 사용하고 싶었다. Set의 객체를 사용하여 has를 사용할 것이다. set 중에서도 set.has를 이용해서 포함 여부를 확인한다. Set.prototype.has() has() 메서드는 Set 객체에 주어진 요소..