2024/09 34

[백준/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] 쇼트 서킷 (Short-Circuit)

📍정의쇼트서킷(Short-Circuit) : 논리 연산에서 불필요한 연산을 건너뛰는 최적화 기법 📍장점성능 향상 : 불필요한 조건 평가를 생략하여, 실행 속도가 빨라진다잠재적 오류 방지 : 인덱스 참조 전, 크기를 확인하는 논리식에서 유용하다.  📄 예시 코드public class CompLogicDemo { public static void main(String[] args) { int x = 0, y = 1; System.out.println((x  📍주의사항모든 조건을 평가해야 하는 경우 적합하지 않기에, 앞선 조건 순으로 실행되고 오류 발생 시 평가가 중지된다는 것을 유의해야 한다.

Language/JAVA 2024.09.27

[Java] var 예약어

📍정의var(variable) : 초깃값을 통하여 데이터 타입을 추론할 수 있는 키워드*예약어 : 특정 기능이나 의미를 가진 단어로, 프로그래밍 언어가 미리 정해둔 키워드  📍장점가독성간결하고 직관적인 코드 📍특징자바 10부터 지원되는 기능한 줄에 하나의 변수 선언만 가능 : 각 변수가 개별적으로 선언되고 초기화되어야 하며, 여러 변수를 한 줄에서 초기화할 수 없다. // var x = 1, y = 3, z = 4;// 오류 발생 : var은 한 줄에 하나의 하나 변수 선언만 지원한다.// var oops;// oops = 1; // 오류 발생 : 두 줄에 걸친 정의 불가.지역 변수에서만 사용 가능 : 메서드 내부의 지역 변수에서만 사용이 가능하며, 필드나 메서드의 매개변수에서는 사용할 수 없다.타..

Language/JAVA 2024.09.27

[프로그래머스/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-..