전체 글 80

[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) 코드는 짧지만 생각해야할 것이 많은 문제 고이..

백준 2003) 수들의 합2 (python)

https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net n, m = map(int, input().split()) a = list(map(int, input().split())) sum = a[0] left = 0 right = 1 cnt = 0 while True: if sum < m: if right < n: sum += a[right] right += 1 else: break elif sum == m: c..

백준 22862) 가장 긴 짝수 연속한 부분 수열 (large)

https://www.acmicpc.net/problem/22862 22862번: 가장 긴 짝수 연속한 부분 수열 (large) 수열 $S$에서 최대 $K$번 원소를 삭제한 수열에서 짝수로 이루어져 있는 연속한 부분 수열 중 가장 긴 길이를 출력한다. www.acmicpc.net n,k =map(int,input().split()) S = list(map(int, input().split())) lt = 0 rt = 0 cnt, res = 0, 0 while rt k: if S[lt] %2 ==1 : cnt -=1 lt +=1 continue else: if S[rt] %2 ==1 : cnt +=1 rt +=1 res = max(res, rt -lt -cnt) print(res)..

백준 5525) IOIOI (python)

https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) m = int(input()) S = input().rstrip() i = 0 cnt = 0 answer = 0 while i < (m - 1): if S[i : i+3] == 'IOI': i += 2 cnt += 1 if cnt =..

백준 1495) 기타리스트 (python)

https://www.acmicpc.net/problem/1495 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net n,s,m = map(int,input().split()) v = list(map(int,input().split())) dp = [[0]*(m+1) for _ in range(n+1)] dp[0][s] = 1 for i in range(n): for j in range(m+1): if dp[i][j] == 1: n1 = v[i] + j n2 = j - v[i..