전체 글
-
[CS/JAVA] 객체지향 프로그래밍 / try-with-resources / 불변 객체 / 참조 타입 / finalCS/Java 2024. 11. 24. 17:08
• 객체지향 프로그래밍(OOP)에 대해 설명해주세요. 우리가 실생활에 쓰는 모든 것을 객체라 하며, 객체지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고, 상태와 행위를 가진 객체를 만들고, 각각의 객체들의 역할이 무엇인지를 정의하여, 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말합니다. 즉, 기능이 아닌 객체가 중심이며, "누가 어떤 일을 할 것인가?" 가 핵심입니다. 특징으로는 상속, 다형성, 캡슐화, 추상화 등이 있고, 모듈 재사용으로 확장 및 유지보수가 용이합니다. • try-with-resources에 대해 설명해주세요. try-with-resources는 try-catch-finally의 문제점을 보완하기 위해 나온 개념입니다. try(...) 안에 자원 객체를 전달하면..
-
[CS/JAVA] Java의 컴파일 과정 / Java의 원시 타입 / 오버라이딩 vs 오버로딩CS/Java 2024. 11. 22. 17:04
• Java의 컴파일 과정에 대해 설명해주세요. ➀ 개발자가 .java 파일을 생성합니다. ➁ build를 합니다. ➂ 자바 컴파일러의 javac의 명령어를 통해 바이트 코드(.class)를 생성합니다. ➃ 클래스 로더를 통해 JVM 메모리 내로 로드합니다. ➄ 실행엔진을 통해 컴퓨터가 읽을 수 있는 기계어로 해석됩니다. (각 운영체제에 맞는 기계어) • Java에서 제공하는 원시타입들에 무엇이 있고, 각각 몇 바이트를 차지하나요? 정수형 byte, short, int, long / 실수형 float, double / 문자형 char / 논리형 boolean 이 있고,정수형 1, 2, 4, 8 / 실수형 4, 8 / 문자형 2 / 논리형 1 바이트를 차지합니다. • 오버라이딩(Overridi..
-
[CS/Operating System] 프로세스와 스레드CS/운영체제 2024. 11. 22. 15:36
• 프로세스와 스레드의 차이? - 프로세스 : 메모리 상에서 실행 중인 프로그램 - 스레드 : 프로세스 안에서 실행되는 여러 흐름 단위 (기본적으로 프로세스마다 최소 1개의 스레드(메인 스레드)를 소유) 프로세스는 운영체제로부터 자원을 할당받지만, 스레드는 프로세스로부터 자원을 할당받고 프로세스의 코드/데이터/힙 영역을 공유하기 때문에 좀 더 효율적으로 통신할 수 있습니다. 또한 컨텍스트 스위칭도 캐시 메모리를 비우지 않아도 되는 스레드 쪽이 빠릅니다. 그리고 스레드는 자원 공유로 인해 문제가 발생 할 수 있으니 이를 염두에 둔 프로그래밍을 해야 합니다. (컨텍스트 스위칭 : 한 Task가 끝날 때까지 기다리는 것이 아니라 여러 작업을 번갈아가며 실행해서 동시에 처리될 수 있도록 하는 방법) ..
-
[프로그래머스/JAVA] 시저암호Algorithm/Java 2024. 11. 17. 18:22
https://school.programmers.co.kr/learn/courses/30/lessons/12926# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제 요약 주어진 문자열 s의 각 알파벳을 n만큼 밀어서 암호화하는 문제로, 대문자와 소문자는 각각 순환되며, 공백은 그대로 유지해야 합니다.[ 오답 노트 ]❌ 기존 오답 코드class Solution { public String solution(String s, int n) { String answer = ""; // AB -> BC -> CD -> DE -> EF -> FG // 1 ..
-
[백준/JAVA] 18311번 : 큰 수 구성하기Algorithm/Java 2024. 11. 10. 20:55
https://www.acmicpc.net/problem/18511📌 문제 요약 N보다 작거나 같은 자연수 중에서, 집합 KKK의 원소로만 구성된 가장 큰 수를 찾아야 한다.KKK의 원소는 1부터 9까지의 자연수로 제한된다.항상 NNN보다 작거나 같은 수를 만들 수 있다고 가정한다. [ 오답 노트 ]❌ 기존 오답 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringToke..
-
[프로그래머스/JAVA] 점프와 순간 이동Algorithm/Java 2024. 10. 31. 21:36
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제 요약 아이언 슈트는 두 가지 이동 방식이 있습니다:순간이동: 현재 위치에서 x2로 이동 (건전지 소모 X)점프: 앞으로 K칸 이동 (건전지 소모 K)목표 거리 N에 도달하기 위해 건전지 사용량을 최소화하는 것이 목표입니다. [ 오답 노트 ]❌ 기존 오답 코드import java.util.*;public class Solution { public int solution(int n) { int ans = 0; // 건전지..
-
[프로그래머스/JAVA] 피보나치 수Algorithm/Java 2024. 10. 30. 15:32
https://school.programmers.co.kr/learn/courses/30/lessons/12945?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[ 오답 노트 ] ❌ 기존 오답 코드결과는 맞게 나오지만 시간 초과가 났다class Solution { public int dfs(int d) { if(d == 0) { return 0; }else if(d == 1) { return 1; } return dfs(d-1) + dfs(d-2); } ..
-
[프로그래머스/JAVA] 이진 변환 반복하기Algorithm/Java 2024. 10. 30. 15:32
https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 문제 요약 0과 1로 이루어진 문자열 s를 변환하여 s가 "1"이 될 때까지 다음 과정을 반복:문자열에서 모든 0 제거제거 후 문자열의 길이를 2진법으로 변환최종적으로 변환 횟수와 제거된 0의 개수를 반환하는 문제.[ 오답 노트 ]❌ 기존 오답 코드 class Solution { public int[] solution(String s) { int[] answer = new int[2]; ..