전체 글846 백준 2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 제한 시간 제한 : 2초 메모리 제한 : 192MB 문제 풀이 과정 N의.. 2023. 8. 25. JDBC JDBC란? JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속하고 관리하기 위한 API이다. JDBC를 사용하면 다양한 데이터베이스 시스템에 대해 일관된 방식으로 데이터베이스에 접속하고 데이터의 CRUD 작업을 수행할 수 있습니다. 자바 CRUD 예제 import java.sql.*; public class JDBCCrudExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; String username = "username"; String password = "password"; try { // 1. 데이터베이스에 연결 Connection c.. 2023. 8. 24. 가상 머신(스택 기반, 레지스터 기반) 가성 머신 가상 머신(VM : Virtual Machine)은 물리적인 CPU에 의해 처리되는 동작을 흉내낼 수 있어야 한다. 실제 하드웨어와 유사한 환경을 소프트웨어로 구현한 것이다. 이를 통해 여러 운영체제나 응용 프로그램등을 물리적 하드웨어상에서 실행하는 것처럼 실행할 수 있다. 가상 머신은 호스트 머신(실제 물리적 하드웨어) 위에서 동작하며, 각 가상 머신은 독립적으로 실행되는 것 처럼 보이지만, 실제로는 호스트 머신의 자원을 공유한다. 가상 머신은 아래의 개념을 구현해야 한다. 소스 코드를 VM이 실행할 수 있는 바이트코드로 변환 명령어와 피연산자를 포함하는 데이터 구조 함수를 실행하기 위한 콜스택 다음 실행할 명령어를 가리키는 IP(Instruction Pointer) 가상 CPU Fetch .. 2023. 8. 24. Object.equals()를 재정의 해야 하는 이유 Object Object 클래스는 모든 클래스의 최상위 클래스이다. 항상 모든 클래스는 Object 클래스를 extend 한다. 즉, Object 클래스에 있는 메서드도 사용이 가능하다. 왜 equals()를 오버라이딩 해야하는가? equals()는 자바에서 동등성 비교를 할 때 사용하는 연산이다. 즉, 값 비교를 할 때 사용한다. public boolean equals(Object obj) { return (this == obj); } 해당 equals()는 Object 클래스에 구현되어 있는 메서드이다. 즉, Object.equals()를 재정의 하지 않을 경우 동일성 비교만 한다. 자바에서 == 연산은 동일성을 비교하는 것이고, 동일성을 비교한다는 것은 같은 주소를 가지고 있는지 비교하는 것이다. .. 2023. 8. 24. sychronized, Atomic sychronized 란? synchronized 는 자바에서 멀티스레드 환경에서 공유된 자원에 대한 동시 접근을 제어하기 위한 키워드이다. synchronized을 이용하여 특정 블록 또는 메서드를 동기화 시켜 한 번에 하나의 스레드만 해당 블록 또는 메서드를 실행할 수 있다. synchronized 를 사용하면 스레드들이 대기하고 경합하며, 이로 인해 성능 저하가 발생할 수 있다. 또한, 여러 스레드가 서로 락을 획득하고 기다리다가 데드락 상태에 발생할 수 있다. 서버 이중화시 동기화 문제점 만약 서버가 이중화 되어 있다면, 각 서버에서 별도의 자원을 가지게 됨으로, synchronized 문제가 발생할 가능성이 줄어들지만, 이중화된 서버들 사이에서 동기화된 자원을 공유하려면 동기화 문제가 발생할 수.. 2023. 8. 24. Servlet, ServletContainer vs DispatcherServlet Servlet 이란? 서블릿이란 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술 입니다. 즉, 클라이언트의 요청에 대해 동적으로 처리하고 응답을 생성하는데 사용되는 자바 클래스입니다. 왜 필요한 것인가? 서블릿은 클라이언트의 요청에 대해 동적으로 응답을 생성하여, 웹 애플리케이션의 동작을 제어합니다. 또한, 웹 애플리케이션의 로직을 자바 클래스로 구현하므로, 서버 측에서 로직을 처리하고 결과를 반환할 수 있다. 정적인 웹 페이지만 제공하는 것이 아닌, 동적인 기능과 데이터 처리가 필요한 경우에 사용된다. 없으면 어떻게 되는가? 서블릿이 없을 경우 동적인 기능을 추가할 수 없어, 정적인 웹 페이지만 제공 가능하다. 또한, 웹 애플리케이션의 비즈니스 로직을 서버에서 처리할 수.. 2023. 8. 24. 이전 1 ··· 10 11 12 13 14 15 16 ··· 141 다음