Coding Test 18

[백준/Java] 24511번 - queuestack

문제 & 난이도큐난이도 : 실버 3 풀이package FirstWeek.QueueStack.CWKM;import java.util.Scanner;public class beakjoon24511 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //첫째 줄 - 자료구조의 개수 N int N = sc.nextInt(); sc.nextLine(); //개행 제거 //행에는 순서를 나타내는 값을, 열에는 자료구조(스택, 큐)형태와 각 자료구조 안의 요소값을 넣을 배열 생성 int[][] A = new int[N][N]; //둘째..

[프로그래머스/Java] 42747번 - H-Index

문제 & 난이도정렬난이도 : 레벨2 풀이package sorting;import java.util.Arrays;class Programmers42747 { public int solution(int[] citations) { Arrays.sort(citations); for(int i = 0; i =count){ return count; } } return 0; //예외 }}  느낀 점 프로그래머스에서 기본으로 제공된 툴을 그대로 이용하지 않아도 된다는 점 !answer변수를 return 하려다 보니 문장이 더 길어졌었는데, 다른 분들의 코드를 보던 중 꼭 제공된 변숫값을 사용하지 않아도 되고, 값..

[프로그래머스/Java] 42626번 - 더 맵게

문제 & 난이도우선순위 큐난이도 : 레벨 2 풀이package sorting;import java.util.PriorityQueue;public class Solution { public int solution(int[] scoville, int K) { int answer = 0; //우선순위 큐 PriorityQueue pq = new PriorityQueue(); for (int i : scoville) { pq.add(i); } while(pq.peek()  알게된 것 & 느낀 점 이번 코딩테스트 스터디 주차 주제가 "정렬"이라 Arrays를 사용해서 풀어야지 하고 정렬을 계속해서 시킨 뒤, 사용한..

[프로그래머스/Java] 42746번 - 가장 큰 수

문제 & 난이도정렬난이도 : 레벨2 풀이package sorting;import java.util.Arrays;public class Programmers42746 { public String solution(int[] numbers){ String answer = ""; String[] arr = new String[numbers.length]; //숫자를 문자열로 반환하여 배열에 저장 for(int i=0; i 자리 변화x Arrays.sort(arr, (o1,o2)-> -(o1+o2).compareTo(o2+o1)); //문자 붙이기 for (String s : arr) { answer ..

[백준/Java] 1083번 - 소트

문제 & 난이도 정렬 알고리즘난이도 : 골드 4 풀이 📄 (잘못된 코드) 정렬 유형 생각 안하고 푼 첫 코드package sorting;import java.util.*;//사용한 알고리즘 - 사전순으로 가장 뒷서는 것을 출력하려면 맨 앞에서부터 비교하면서 정렬해야 함public class Beakjoon1083 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //첫째줄 : 크기 N int N = sc.nextInt(); //크기 N인 배열 생성 int[] arr = new int[N]; //배열 안에 원소 넣기 fo..

[알고리즘] 정렬 (Sorting)

📍정의정렬 : 특정한 기준에 맞게 순서대로 나열하는 방법  📍주요 정렬 알고리즘 ( 로직 & 예시 코드 ) 1. 버블 정렬 ⚙️ 로직인접한 두 요소를 비교하여 크기 순서가 잘못되어 있을 경우, 위치를 바꾼다한 번의 패스가 끝나면 가장 큰 값이 마지막에 위치하여, 남은 요소들에 대해 반복한다.시간 복잡도 : O(n^2)단순, 비효율적 → 작은 데이터셋에 적합하다. 📄 유형 이해 코드public class BubbleSort { public static void bubbleSort(int[] arr) { int n = arr.length; for (int i = 0; i arr[j + 1]) { // 위치 바꾸기 ..

[알고리즘] 시간 복잡도 (Time Complexity)

개요 코딩테스트 스터디원의 풀이를 보는데 어느 것이 더 프로그래밍 쪽으로 나은 풀이인지 파악이 어려워 기준을 파악해 보고자, 효율적인 알고리즘을 선택하고자 찾아본 개념  📍정의시간 복잡도 : 알고리즘의 입력 크기에 따라 프로세스가 실행되는 데 걸리는 시간을 수치화 한 것- 컴퓨터의 성능에 따라 실행시간은 달라질 수 있기에, 명령문의 실행 빈도수를 계산하여 실행 시간을 구한다.   📍시간복잡도 분석법빅오 표기법 (최악의 경우): 최악의 입력이 주어졌을 경우의 알고리즘이 수행하는 연산의 수 측정세타 표기법 (평균의 경우) : 모든 입력이 주어졌을 떄의 평균으로 걸리는 시간 측정오메가 표기법 (최선의 경우) : 가장 유리한 입력이 주어졌을 때의 알고리즘이 수행하는 연산의 수 측정  📍빅오 표기법(Big-..

[백준/Java] 11000번 - 강의실 배정

문제 & 난이도그리디 알고리즘난이도 : 골드 5 풀이package greedy;import java.util.*;public class Beakjoon11000 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //첫째 줄 : 수업의 개수 N int N = sc.nextInt(); //수업 시간을 저장할 배열 int[][] timesheet = new int[N][2]; //이후 N개의 줄 : 시작 시간과 끝나는 시간 for (int i = 0; i () { @Override pub..

[백준/Java] 9012번 - 괄호

문제 & 난이도스택 구조난이도 : 실버 4 풀이public class beakjoon9012 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); sc.nextLine(); for(int i = 0; i stack = new ArrayDeque(); for(int j = 0; j  : 코딩테스트 스택 구조의 빈출 유형으로, 열린 괄호를 만나면 스택에 넣고 닫힌 괄호를 만나면 스택에서 열린 구조를 빼는 알고리즘. 최종적으로 스택이 비어있다면 yes, 남아있다면 no반환 알게 된 것 & 느낀 점  -   ..