본문 바로가기

취업/코딩테스트

(5)
프로그래머스 택배 상자 꺼내기 문제  정답총 층수와 해당하는 num의 층수를 구해서 빼면 구할 수 있을 것이라 생각했다.맨 위층이 다 채워진 경우와 다 채워지지 않는 경우로 나누고,다 채워지지 않은 경우 num이 해당하는 층이 정방향인지 역방향인지 고려하여 에서 어느 위치에 있는지 1부터 w까지 구했다. 역방향의 경우 w를 빼주어 정방향의 위치로 고쳐주었다.맨 위층의 방향도 고려하여 어디까지 상자가 채워져 있고 이를 num의 위치와 비교하여 상자의 개수를 구했다.class Solution { public int solution(int n, int w, int num) { int answer = 0; int numh = 0; int numloc = 0; // 총 층수 구하기 ..
백준[1181] 단어 정렬 문제알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.입력첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.정답- 중복 제거를 위해 HashSet으로 input 받음- sort() 함수 사용을 위해 ArrayList 객체 생성하면서 HashSet 넣어줌- compare() 함수를 직접 구현하기 위해 StrComparator 클래스에 인터페이스 Comparator 구현- compare() 함수를 길이로 비교하도록..
[미완]프로그래머스 [PCCP 기출문제] 1번/붕대감기 문제 - [PCCP 기출문제] 1번/붕대감기 정답- 몬스터가 공격하는 시간을 체크하기 위해 Stack 사용- for문으로 일일히 시간을 확인하는 것보다 맨 앞의 시간 가져온 후 버리는게 효율적이라고 생각함import java.util.*;class Solution { public int solution(int[] bandage, int health, int[][] attacks) { int t = 0; // 시간 int s = 0; // 연속 성공 int h = health; // 체력 변화량 int frontAttack = 0; // 공격 시간 버퍼 Stack attackTime = new Stack(); ..
프로그래머스 가장 가까운 같은 글자 문제 - 가장 가까운 같은 글자 정답- toCharArray()로 문자열을 문자 배열로 변환- 동일한 문자 위치(인덱스)를 알기 위해 문자열 배열 buffer 선언class Solution { public int[] solution(String s) { char[] sArray = s.toCharArray(); // 문자열 문자 배열로 바꾸기 char[] buffer = new char[s.length()]; int[] answer = new int[s.length()]; for (int i=0; i 시간복잡도이중 for문으로 O(n^2) 다른 사람 풀이https://school.programmers.co.kr/learn/courses..
코딩테스트 준비 문법 정리 1-1. JAVA- 문법, 상속, 자료구조, 컬렉션 프레임워크https://dinfree.com/lecture/language/112_java_2.html#m1  1-2. Python- 문법, 모듈, 클래스https://wikidocs.net/43- 정렬 함수 sorted()https://wellsw.tistory.com/178- 리스트에서 최댓값 찾기(인덱스도 찾기)https://ming-jee.tistory.com/121- 리스트에서 튜플, 객체 정렬https://twpower.github.io/118-sort-list-elements-by-using-key  2. SQL query문- SELECT, INSERT, UPDATE, DELETEhttps://lcs1245.tistory.com/entry/..