전체 글

전체 글

    [GitHub] github 한글 인코딩

    깃 허브 소스를 올릴 때 한글이 깨진다면 인코딩을 해주면 됩니다. git bash에서 인코딩 명령을 해줍니다. $git config --global gui.encoding utf-8

    [Java] 10진수 2진수로 변환

    안녕하세요 코북입니다. 오늘은 10진수를 2진수로 변환하는 코드를 작성해봤습니다. 이 문제를 풀려면 십진법 수를 이진법 수로 나타내는 방법에 대해 알아야 하는데요. 십진법 수를 몫이 0이 될 때까지 2로 나누어서 생긴 나머지를 역순으로 적으면 됩니다. public class Java17 { public static void main(String[] agrs) { Scanner sc = new Scanner(System.in); System.out.print("숫자입력 >> "); int a = sc.nextInt(); ArrayList list = new ArrayList(); // 10진법으로 나타낸 수를 2진법으로 타나내려면 // 몫이 0이 될 때까지 계속 2로 나누어서 생긴 나머지를 역순으로 적으면..

    [Java] 가까운 거리 찾기 (1차원)

    안녕하세요 코북입니다. 학원 다닐 때 풀었을 때 꽤나 어렵다고 생각했던 문제였는데, 다시 풀어보니 역시나 헷갈렸습니다. 예전만큼 헤매지는 않았지만 부족한 점이 많다고 생각돼 기록하러 왔습니다. 다음은 첫 번째 풀이입니다. public class Java16 { public static void main(String[] args) { int[] point = {92, 32, 52, 9, 81, 2, 68}; // 거리 값을 저장할 배열 int size = 0; // 배열 크기 for(int i=1; i

    [Java]수열 n번째 항까지 출력

    안녕하세요 코북입니다. 즐거운 설 연휴네요. 즐거운 마음으로 오늘 수열 문제 풀어봤습니다. 먼저 수열 값을 구하는 메소드를 만든 후에 n번째 항까지 출력하도록 반복문을 만들어줬습니다. 위에 나온 수열은 다음 수가 나올 때 1씩 증가한 값이 더해지는 규칙을 가지고 있습니다. 첫 번째에 1이 나온 후 두 번째는 1+1, 세 번째는 1+1+2, 네 번째는 1+1+2+3이 나오게 됩니다. 반복하면 다음과 같은 규칙이 나옵니다. 첫 번째 : 1 두 번째 : 1(첫 번째 값) + 1 세 번째 : 1+1(두 번째 값) + 2 네 번째 : 1+1+2(세 번째 값) + 3 ... n 번째 : (n-1 번째 값) + (n-1) n이 1인 경우를 제외하면 n을 입력했을 때 n-1 번째 값과 n-1을 더한 값이 결괏값으로 나..

    [error/Java]Implicit super constructor Unit() is undefined. Must explicitly invoke another constructor

    상속받은 클래스에 디폴트 생성자가 없는 경우 발생하는 에러, 상속받은 클래스에 디폴트 생성자를 생성해주면 해결된다.

    [Java]소인수분해

    안녕하세요 코북입니다. 오늘은 소인수분해에 대한 문제를 풀었는데 여러가지 풀이 방법이 있어 기록하려고 합니다. 먼저 소인수분해의 뜻을 알아야 문제를 풀 수 있습니다. 어렸을 때부터 들어봤지만 정확히 무슨 뜻인지는 저도 잘 몰랐던 것 같습니다. 소인수분해란? 소인수분해는 어떤 수를 소수인 인수로 분해하는 것이다. 소수는 1과 자기 자신으로만 나누어 떨어지는 정수를 의미한다. 소인수분해가 중요한 이유는 현대 암호학의 가장 기본 토대가 되는 부분이기 때문이다. 두 수의 곱셈을 결과로 나타내기는 쉬워도 결과를 두 수의 곱셈으로 나타내기는 어렵다는 역발상에서 시작되는 것이 암호학의 기초이기 때문에 그렇다고 한다. 저는 두 가지 방식으로 문제를 해결했습니다. 첫 번째는 while문과 if문을 사용한 풀이이고, 두 ..

    [Java]팩토리얼 - 재귀 함수

    안녕하세요 코북입니다. 오늘은 팩토리얼 문제를 풀었는데, 반복문을 통해 푸는 방법과 재귀 함수를 사용해서 푸는 방법이 있었습니다. 반복문 풀이 public class Java08 { public static void main(String[] agrs) { Scanner sc = new Scanner(System.in); System.out.print("입력 : "); int num = sc.nextInt(); int fact = 1; //곱해야 하므로 기본값을 1로 설정 for(int i=2; i

    [Java]최대 공약수, 최소 공배수 구하기(feat.유클리드 호제법)

    안녕하세요 코북입니다. 오늘은 최대 공약수와 최소 공배수를 구하는 문제를 풀어봤습니다. 풀이가 다양하여 제가 푼 방식을 공유해보려고 합니다. 첫 번째 방식은 문제에 나와있는 것처럼 최대 공약수와 최소 공배수의 개념에 대해 파악한 후 문제에 접근했습니다. 최대 공약수란? 0이 아닌 두 개 이상의 정수의 공통되는 약수 중에서 가장 큰 수이다. 따라서 두 정수 a와 b의 최대 공약수는 a의 약수인 동시에 b의 약수인 수, 즉 두 정수 a, b의 공약수 중에서 가장 큰 수를 의미한다. 여기서 '공통되는', '동시에'라는 특징이 나오기 때문에 &&를 사용하여 값을 구하려고 하였습니다. "최소 공배수는 0이 아닌 두 개 이상의 정수의 양의 공배수 중에서 가장 작은 수이다."라고 나와 있지만, 최대 공약수를 활용하여..

    [Java]1-2+3-4+...+99-100 계산

    안녕하세요 코북입니다. 이 문제는 두 가지 방식으로 풀어봤습니다. 첫 번째는 다음과 같이 for문 안에서 변수를 두 가지 사용하여 구하는 방법이고, 두 번째는 for문 안에 하나의 변수와 if문을 사용하여 구하는 방법입니다. 1번 풀이 public class Java05 { public static void main(String[] args) { int plus = 0; int minus = 0; for(int i=1, j=2 ; i

    개발자 기술면접 준비

    Process와 Thread의 차이 프로세스 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 스레드 : 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이다. 스레드는 할당받은 자원을 이용하는 실행의 단위이고, 프로세스 내에 여러개 생길 수 있다. 애플리케이션 하나가 프로세스이고, 그 안에서의 분기 처리가 스레드가 되는 셈이다. 비동기 프로그래밍 왜 해야 하는가? JavaScript는 싱글 스레드 언어이기 때문에 한 번에 한 가지 작업밖에 수행하지 못한다. 그래서 자바스크립트로 코드를 구동하면 무언가 순차적으로 일어나게 된다. 이러한 특성으로 싱글 스레드 언어는 치명적인 단점을 갖게 된다. 무거운 작업을 수행 중일 때 그 뒤의 어떤 작업도 진행되지 않..