프로그래밍 41

객체(Object)와 클래스(Class)란?

아래 내용들은 모두 ChatGPT 님의 말씀 입니다. 📌 클래스(Class)와 객체(Object)는 다르지만, 서로 밀접한 관계를 가지고 있다.1️⃣ 클래스(Class)란?설계도(Blueprint) 역할객체를 만들기 위한 틀(Template)속성(필드)과 행동(메서드)을 정의실체가 아니라 개념적인 존재class Car { // 속성(필드) private String model; private int speed; // 동작(메서드) public void accelerate() { speed += 10; }} 2️⃣ 객체(Object)란?클래스를 기반으로 실제 메모리에 할당된 실체객체는 클래스를 통해 만들어지고, 독립적인 값을 가짐클래스를 바탕으로 만들어진 인스..

[알고리즘] 정렬(Sort) 알고리즘

들어가기 전예를 들어 선택 정렬의 로직을 배우고 "선택"이라는 이름과 로직이 매칭이 잘 안 되었다.그러다 보니까, 로직을 강제로 암기를 하게 되고 시간이 지나면 까먹는 문제가 생긴다. 즉, 선택과 정렬 등의 단어가 왜 사용하고 있는지 어원을 이해 해보자!!!정렬 알고리즘1. 퀵 정렬(Quick Sort)동작 방법코드 작성 2. 선택 정렬(Selection Sort)어원편선택 정렬(Selection Sort)에서 선택이라는 단어는 정렬되지 않은 데이터 중에서 가장 작은(또는 가장 큰) 값을 "선택"하여 정렬된 부분으로 이동시키는 방식에서 유래했습니다. 동작 방법https://www.youtube.com/watch?v=uCUu3fF5Dws 코드 작성public class Main { public sta..

오답노트

※ 나중에 다시 풀어봐야하는 문제 정리 ※  오답 노트세로읽기색종이괄호 백준 푸는 방법StringTokenizer() vs split()  입력 데이터가 주어지지 않는 경우BufferedReader.readLine() 메서드는 파일 끝에 도달하면 null을 반환import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { String line; while ((line = br.readLine()) != null) { } }}

[백준] 스택 큐 덱 문제집

다시 보면 좋은 코드stack의 값을 하나씩 출력하는 코드for (int i = stack.size() - 1; i >= 0; i--) { System.out.println(stack.get(i));} 문제집1874번: 스택으로 오름차순 수열 만들기  - 실버 5// 작성중입니다. 28278번: 스택 2  - 실버 4Stack 클래스가 처음이라 메서드를 확인하면서 풀었다...!!import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamR..

[백준] 2차원 배열 문제집 (완료)

교훈: 문제를 자세하게 읽자.. 문제집★는 다시 풀어야 하는 문제 입니다.2738번: 행렬 덧셈import java.util.*;import java.io.*;public class Main { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()..

[알고리즘] 피보나치 수열의 시간복잡도

기존 알고리즘O(2^n)매 번 함수가 호출 될 때마다 또 두 번씩 호출 된다.F(n, r) { if (n  기존 알고리즘 + 메모이제이션O(n)메모이제이션을 통해 n을 두 번 호출 안하게 된다.F(n, r) { if (n 0) return r[n]; ⭐ return r[n] = F(n-1, r) + F(n-2, r);} 변형된 피보나치 수열 풀이코드O(n2^n)으로 계산은 틀렸다.2^n을 n번 반복하는 것으로 때문에 착각할 수 있다.allF은 1부터 n까지의 모든 피보나치 수를 계산하고 출력  F(1): O(2^1)F(2): O(2^2)F(3): O(2^3)...F(n): O(2^n)O(2^1 + 2^2 + 2^3 + ... + 2^n-1 + 2^n)= 2^n - 2 + 2^n= 2 *..

[알고리즘] 빅오(Big-O) 표기법

What is Big-O?알고리즘의 실제 실행 시간을 표기하는 것보다는 데이터 또는 사용자의 증가율에 따라 알고리즘의 성능을 예측하는 것이 목표Mathematical notation that describes algorithm efficiencyTime & Space complexityDescribes the growth rate of algorithms용어 정리n, m: 함수의 매개변수로 입력의 크기를 의미할 때 사용.  O(1) - const time인자로 받는 데이터의 크기 상관없이 일관되게 0의 위치에 있는 값을 확인F(int[] n) { return (n[0] == 0)? true:false;}  O(n) - 선형 시간(linear time)인자로 n개의 데이터를 받으면 n번 루프(loop)를 ..