분류 전체보기 80

[JAVA] 어노테이션(Annotation)

📚 어노테이션이란?코드에서 @로 작성되는 요소를 어노테이션(Annotation)이라고 한다. 어노테이션은 클래스 또는 인터페이스를 컴파일하거나 실행할때 어떻게 처리해야하는 지를 알려주는 설정 정보이다. 어노테이션은 코드에 추가적인 메타데이터를 제공하여, 개발자가 명시적으로 로직을 정의하지 않아도 프레임워크나 라이브러리가 이 메타데이터를 기반으로 동작을 수행할 수 있도록 한다. 또한, 어노테이션은 직접적으로 실행되는 코드가 아니기 때문에, 이를 기반으로 동작을 수행하려면 리플렉션을 통해 어노테이션 정보를 읽어와야 한다.리플랙션이란?자바의 런타임에 클래스, 메서드, 필드, 어노테이션의 정보를 동적으로 조회하고 조작할 수 있는 기술이다.@Retention(RetentionPolicy.RUNTIME) // 런..

🍎 Backend/JAVA 2025.01.09

[JAVA] 람다(Lambda)와 스트림(Stream)

📚 람다 표현식이란?함수형 프로그래밍을 구현하기 위한 함수식이다.말하자면, 자바의 메소드를 간결한 함수식으로 표현한 것이다int add(int x, int y) { return x + y;}// 위의 메서드를 람다 표현식을 이용해 아래와 같이 단축 시킬수 있다. (메서드 반환 타입, 메서드 이름 생략)(int x, int y) -> { return x + y;};// 매개변수 타입도 생략 할 수 있다.(x, y) -> { return x + y;};// 함수에 리턴문 한줄만 있을 경우 더욱 더 단축 시킬 수 있다. (중괄호, return 생략)(x, y) -> x + y;출처: https://inpa.tistory.com/entry/☕-Lambda-Expression [Inpa Dev 👨‍💻:..

🍎 Backend/JAVA 2025.01.09

[JAVA] CS면접대비 자바와 객체지향 정리

💡 자바언어의 특징객체지향 언어GC존재하므로 불필요한 메모리 정리JVM으로 독립적인 운영체제 환경에서 실행이 가능하다멀티스레딩: 내장된 멀티스레딩 기능으로 동시 작업 수행 지원이 가능하다💡 자바언어의 단점 수행속도가 느리다C나 C++의 네이티브 언어에 비해 많은 메모리를 소비한다JVM은 프로그램 속도를 감소시키는 기능을 수행함많은 메모리 공간을 필요로 함JVM은 자바 애플리케이션 실행을 위해 힙 메모리와 추가적인 메모리 공간을 필요로 한다.객체지향언어이므로 객체를 생성하는 과정에서 불필요한 객체의 생성으로 메모리 낭비가 발생한다.💡 자바의 실행 과정 작성: Java 소스 파일(.java)을 작성.컴파일: Java 컴파일러(javac)가 소스 코드를 바이트코드(.class)로 변환.실행: JVM이 ..

🍎 Backend/JAVA 2025.01.02

스프링부트) Web server failed to start. Port 8080 was already in use. 포트 충돌 시 에러 해결 방법 (MAC)

스프링부트를 사용하다가 포트충돌이 나는 경우가 있다.Description: Web server failed to start. Port 8080 was already in use.  Action:  Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. 해결 방법lsof -i :8080 후에 PID밑의 번호 확인kill -9 포트번호 포트 충돌시 에러를 해결할 수 있다!

🍎 Backend/Spring 2024.12.31

프로그래머스) 이모티콘 할인행사(python)

문제https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 나의 풀이def solution(users, emoticons): answer = [0, 0] data = [10, 20, 30, 40] discount = [] def dfs(L,tmp): if L == len(tmp): discount.append(tmp[:]) return else: for i in data: ..

[java] abstract(추상) vs implements의 비교

1. 추상 클래스란?* 추상은 실체간의 공통된 특성을 추출해낸 것을 말한다.추상클래스는 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스를 추상클래스라고 한다.추상클래스는 실제 클래스의 부모 역할을 한다.상속해서 공통적인 필드나 메소드를 물려 받을 수 있음예시public abstract class Animal { public void breath(){ System.out.println("숨을 쉽니다!"); } //추상 메소드 선언 abstract void sound();}public class Cat extends Animal { @Override void sound () { System.out.println("야옹야옹"); }}pu..

🍎 Backend/JAVA 2024.12.20

백준 20165) 인내의 도미노 장인 호석

문제 링크https://www.acmicpc.net/problem/20165   문제 풀이 기본적인 시뮬레이션 문제이다 n,m,r = map(int, input().split())arr=[list(map(int, input().split()))for _ in range(n)]visited = [[True]*m for _ in range(n)]dir = {'E':(0,1),'W':(0,-1),'S':(1,0),'N':(-1,0)}answer = 0입력값을 받아준다나의 풀이의 경우에는 visited배열을 두어서, 넘어지면 False로 해두었다 for _ in range(r): X,Y,D = map(str, input().split()) X = int(X)-1 Y = int(Y)-1 xx..

백준 2608) 로마숫자(python)

https://www.acmicpc.net/problem/2608 2608번: 로마 숫자 첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같고, 두 수의 합은 4000보다 작다. www.acmicpc.net import sys input = sys.stdin.readline r1 = input().rstrip() r2 = input().rstrip() roma = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} roma2 = {'IV': 4, 'IX': 9, 'XL': 40, 'XC': 90, 'CD': 400, 'CM': 900} roman3 = {1000: "M", 900: "C..

카테고리 없음 2024.03.28

백준 14719) 빗물 (python)

https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net h,w =map(int,input().split()) arr = list(map(int, input().split())) res = 0 for i in range(1, w-1): tmp = min(max(arr[:i]), max(arr[i+1:])) if tmp > arr[i]: res += tmp - arr[i] print(res) 코드는 짧지만 생각해야할 것이 많은 문제 고이..