분류 전체보기
-
CS 스터디 - Java & SpringCS 2023. 8. 15. 03:37
#1 ) 자바는 인터프리터 언어인가요? 컴파일 언어인가요? 자바는 2가지 방식을 모두 혼합하여 사용합니다. (하이브리드 언어라고도 함) 자바 컴파일러가 .java 파일을 컴파일을 통해 .class파일(바이트코드)로 만듭니다. (이 파일까진 운영체제 독립적. ) 이후 JVM의 인터프리터가 각 운영체제에 맞게 이진 코드로 변환합니다. (참고로 JVM은 각 운영체제에 맞게 설치되어야 합니다) * 참고로 번거롭더라도 이렇게 하는 이유는 자바의 세일링 포인트가 once compiled, use anywhere라는 것이 모토이기 때문이다. 컴파일 - 인터프리터 조합이기 때문에 다소 시간이 느리더라도 이 과정 덕분에 java라는 언어자체는 운영체제에 독립적이다. 또한 JIT 컴파일 방식도 도입돠고, 예전보다 하드웨어..
-
백준 2293Java/코딩테스트 2023. 8. 15. 03:34
https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제에 들어가보면 알겠지만 시간과 메모리 제한이 매우 옹졸하다. 문제 조건만 봐도 ... 괜히 2차원 배열쓰거나 반복문 크게 돌리면 분명 초과가 날 것이다... 라고 말해주고 있다. 원래 동적계획법 문제는 점화식을 세워버릇 했는데 이건 진짜 모르겠었다. 처음엔 그냥 동전 종류중에 가장 큰 동전의 DP 값 + 나머지 이런 식으로 분할해서 합하는건가 했는데 단순히 그렇게 종이에 계산해봤는데 답이 안 맞..
-
-
백준 2206, 14442Java/코딩테스트 2023. 8. 13. 22:44
------------------------- 사담 ------------------------- 이 문제는 CS 스터디에서 스터디원분이 추천해준 문제이다. 왜 추천해줬었는지 기억은 안 나지만...추천해준 것만 기억하고 일단 풀었다... 벽 부수고 이동하기 문제가 시리즈로 3인가 4까지 있었던거 같은데 일단 2까지는 풀었다. 처음 2206을 풀고 이해했다면 14442는 변수만 살짝 바꿔서 쉽게 풀수 있을 것이다. https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이..
-
CS 스터디 - 운영체제 Q&A(1)CS 2023. 8. 10. 23:28
#1 ) 멀티 스레드 방식이 멀티 프로세스 방식에 비해 가지는 장점에 대해 설명해주세요. 멀티 프로세스 방식만으로도 하나 이상의 작업을 수행할 수 있지만, 멀티 프로세스보다 메모리 등 자원을 적게 사용하고, 자원을 어느정도 공유하기 때문에 스레드 간 데이터 주고 받는 통신 비용이 적게 든다는 장점을 가집니다. #2 ) 뮤텍스와 세마포어의 차이에 대해 설명해주세요. 뮤텍스는 오직 하나의 스레드 || 프로세스만 접근할 수 있으며, 락을 획득한 스레드 || 프로세스가 락을 해제해야 합니다. 세마포어는 세마포어 변수만큼의 스레드 || 프로세스가 접근할 수 있으며 현재 수행중이 아닌 프로세스가 세마포어를 해제할 수 있습니다. 두 가지 모두 임계영역에서의 경쟁상태를 제거할 수 있습니다. 경쟁상태 : 2가지 이상의 ..
-
-
백준 2228Java/코딩테스트 2023. 8. 10. 03:23
https://www.acmicpc.net/problem/2228 2228번: 구간 나누기 N(1 ≤ N ≤ 100)개의 수로 이루어진 1차원 배열이 있다. 이 배열에서 M(1 ≤ M ≤ ⌈(N/2)⌉)개의 구간을 선택해서, 구간에 속한 수들의 총 합이 최대가 되도록 하려 한다. 단, 다음의 조건들이 만족되 www.acmicpc.net 생각의 흐름.. 1. 처음엔 DFS 방식으로 구간 시작위치를 조합해서 구하려 했었다. 근데 다 생각해보니 답이 다르길래 뭐지 했는데 각 구간 길이가 다를 수도 있었다. 그래서 뭔가 이방식으로 풀어나가기가 애매했다. 2. 구글링을 했는데 DP를 사용하는걸 확인을 했다. 3. 좀 다른 분들 코드를 보다가, DP[ i ][ j ] 를 배열의 첫 번째 원소에서 i 번째 원소까지 ..
-
Java equals() vs hashCode()Java/이론&문법 2023. 8. 8. 19:43
급 tmi. intellij에서 cmd + option + b 누르면 docs 열 수 있음 # 1 equals()와 hashCode() 차이가 무엇일까요? 그리고 이 메소드들이 자바의 해시 컬렉션의 성능에 어떤 영향을 끼칠까요? equals()는 참조 변수의 값이 같은지 비교하는 메소드로, 재정의 되어있지 않다면 객체의 주소값을 비교하여 동일 객체인지 비교후 boolean 값을 리턴하는 메소드입니다. 대표적으로 String 클래스에 equals를 사용할 경우에는 주소값이 아닌 데이터 값을 비교하여 동일 여부를 판정합니다. (아래 코드 참고) hashCode()는 객체의 주소값을 이용하여 해싱 기법을 적용한 결과값을 리턴하는 메소드입니다. 자바의 해시 컬렉션은 동일 객체인지 판정할 때 hashCode() ..