Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java

  1. Java로 범위 내 숫자들의 총 이익 극대화하기

    이 글에서는 5개의 정수 변수 Num, P1, P2, profit_P1, profit_P2가 주어졌을 때, [1, Num] 범위에 있는 자연수들로부터 얻을 수 있는 총 이익을 극대화하는 방법을 다룹니다. 핵심 아이디어는 다음과 같습니다. 범위 내의 어떤 수가 P1으로 나누어 떨어지면 이익이 profit_P1만큼 증가하고, P2로 나누어 떨어지면 이익이 profit_P2만큼 증가합니다. 단, 하나의 수로부터 얻는 이익은 최대 한 번만 더할 수 있습니다. 예시로 이해하기 입력 − int num = 4, P1 = 6, P2

  2. 자바로 배우는 미트 인 더 미들(Meet in the Middle): 최대 부분집합 합 구하기

    배열 하나와 목표 합계 값이 주어졌을 때, 주어진 합계 값을 초과하지 않는 최대 부분집합 합을 구하는 것이 이번 문제의 목표입니다. 주어진 배열의 구조가 일반적인 분할 정복(divide and conquer) 방식과 잘 맞지 않기 때문에 단순 브루트 포스(완전 탐색) 접근법은 효율적이지 않습니다. 이럴 때 유용하게 쓸 수 있는 것이 바로 미트 인 더 미들(Meet in the Middle) 기법입니다. 이 기법은 전체 집합을 절반씩 나누어 각각의 부분집합 합을 미리 계산해 둔 뒤, 두 결과를 조합하여 정답을 찾습니다. 이렇게 하면

  3. Java로 크기 4 그룹의 요소에 서로 다른 XOR을 적용해 배열 구하기

    문제 개요정수 배열이 주어집니다(배열의 크기는 4의 배수). 우리는 이 배열에 배타적 논리합(XOR) 연산을 수행하여, 원본 배열의 각 4개 요소 그룹이 새로운 배열의 해당 그룹과 대응되도록 만들어야 합니다.계산 조건은 다음과 같습니다.만약 arr[1~4] = {a1, a2, a3, a4}라면,q[1~4] = {a1⊕a2⊕a3, a1⊕a2⊕a4, a1⊕a3⊕a4, a2⊕a3⊕a4}즉, 각 그룹에서 세 개의 요소씩 선택해 XOR한 값들을 순서대로 나열한 것이 결과 배열이 됩니다.입력 및 출력 예제입력: int[] input = { 5

  4. Java 메모이제이션(1D, 2D, 3D) 동적 프로그래밍 완벽 가이드

    메모이제이션(Memoization)이란?메모이제이션은 동적 프로그래밍(Dynamic Programming)에 기반한 최적화 기술입니다. 주어진 입력값에 대한 연산 결과를 배열과 같은 자료구조에 저장해 두었다가 재사용함으로써, 동일한 입력에 대해 재귀 메서드가 두 번 이상 실행되지 않도록 보장하고 재귀 알고리즘의 성능을 크게 향상시킵니다. 메모이제이션은 재귀 메서드의 탑다운(Top-Down) 방식을 구현하여 적용할 수 있습니다.가장 기본적인 피보나치(Fibonacci) 수열 예제를 통해 메모이제이션의 필요성을 살펴보겠습니다.1차원(1

  5. Java를 활용한 Selenium 웹 페이지 스크롤 방법 완벽 가이드

    Selenium에서 Java를 사용해 웹 페이지를 아래로 스크롤하는 방법을 알아보겠습니다. Selenium은 스크롤 동작을 직접 처리할 수 없기 때문에, Javascript Executor의 도움을 받아 특정 요소까지 스크롤을 수행해야 합니다.스크롤 구현 원리먼저 스크롤하려는 대상 요소를 찾아야(locating) 합니다. 그다음 Javascript Executor를 사용하여 자바스크립트 명령을 실행합니다. Selenium에서 자바스크립트 명령을 실행할 때는 executeScript 메서드를 사용하며, 자바스크립트의 scrollInt

  6. Java로 Selenium WebDriver에서 인증 팝업 처리하는 방법

    Java를 활용하면 Selenium WebDriver에서 인증 팝업(Authentication Popup)을 간단하게 처리할 수 있습니다. 핵심 원리는 별도의 창 전환이나 외부 라이브러리 없이, URL 자체에 사용자 이름과 비밀번호를 포함시켜 페이지에 접근하는 것입니다.인증 팝업 처리 방식브라우저가 띄우는 기본 인증 창은 일반적인 웹 요소처럼 로케이터로 접근할 수 없습니다. 따라서 아래와 같은 형식으로 URL에 사용자 자격 증명을 직접 삽입합니다.https://username:password@URL https://admin:admi

  7. Java에서 Cucumber 기능(Feature) 파일 만드는 방법 – Eclipse & Maven 단계별 가이드

    Cucumber는 BDD(Behavior Driven Development, 행위 주도 개발)를 지원하는 대표적인 테스트 자동화 도구입니다. 개발자가 아닌 비즈니스 이해관계자도 읽기 쉬운 자연어 형식의 시나리오를 작성할 수 있다는 점이 큰 장점입니다. 이 글에서는 Eclipse 환경에서 Maven 프로젝트를 생성하고, Cucumber용 기능(Feature) 파일을 단계별로 만드는 과정을 살펴보겠습니다. 1단계: Eclipse에서 새 프로젝트 시작하기 Eclipse를 실행한 뒤 상단의 File 메뉴를 클릭합니다. New 옵션을 선택

  8. Java에서 Cucumber 스텝 정의 파일 만드는 방법 – Eclipse와 Maven 활용 가이드

    Cucumber에서 BDD 시나리오를 실제 코드로 구현하려면 스텝 정의(Step Definition) 파일이 반드시 필요합니다. 이 글에서는 Eclipse와 Maven을 활용해 Java 환경에서 스텝 정의 파일을 단계별로 생성하는 방법을 자세히 알아보겠습니다.1단계: Eclipse에서 새 프로젝트 시작하기Eclipse 상단 메뉴에서 File → New → Other를 차례로 클릭합니다.2단계: Maven 프로젝트 선택마법사 창에서 Maven 폴더 안의 Maven Project를 선택한 뒤 Next 버튼을 누릅니다.3단계: 마법사 진

  9. Rest Assured란 무엇일까? 자바 기반 REST API 테스트 라이브러리 완벽 정리

    Rest Assured란 무엇인가?Rest Assured는 자바(Java) 라이브러리를 활용해 REST API를 검증하는 도구입니다. 이 라이브러리는 헤드리스(headless) 클라이언트처럼 작동하며, REST 웹 서비스에 직접 요청을 보내고 응답을 확인할 수 있게 해줍니다. 또한 Rest Assured 기반의 라이브러리들은 서버에서 반환되는 HTTP 응답까지 검증할 수 있는 강력한 기능을 제공합니다.Rest Assured로 검증할 수 있는 항목Rest Assured를 사용하면 다음과 같은 HTTP 응답 요소들을 손쉽게 테스트할 수

  10. XPath로 및 공백이 포함된 텍스트 요소 검색하는 방법

    로케이터인 XPath를 활용하면   또는 공백이 포함된 텍스트를 가진 웹 요소를 손쉽게 식별할 수 있습니다. 먼저 텍스트 앞뒤에 공백이 있는 웹 요소의 HTML 코드를 살펴보겠습니다. 아래 이미지에서 strong 태그로 감싸진 JAVA BASICS 텍스트는 HTML 코드에서 확인할 수 있듯이 공백을 포함하고 있습니다.요소의 텍스트나 속성 값에 공백이 포함되어 있다면, 해당 요소에 대한 XPath를 작성할 때 반드시 normalize-space 함수를 사용해야 합니다. 이 함수는 문자열의 앞뒤 공백을 모두 제거할 뿐만 아니라

  11. 자바(Java)에서 정수를 출력하는 프로그램 작성 방법

    자바(Java)에서 정수 출력하기 이 글에서는 자바에서 정수를 출력하는 방법을 알아봅니다. 정수 출력에는 int 자료형이 사용됩니다. int는 32비트 부호 있는 2의 보수(twos complement) 정수로, 표현할 수 있는 최솟값은 -2,147,483,648(-231)이며 최댓값은 2,147,483,647(231-1)입니다. int는 메모리 사용에 대한 특별한 고려 사항이 없는 한 정수값의 기본 자료형으로 널리 사용되며, 값을 지정하지 않으면 기본값은 0이 됩니다. 입력 및 출력 예시 사용자가 다음과 같이 정수를 입력했다고 가

  12. Java에서 문자열을 출력하는 방법: 기본 개념부터 예제 코드까지

    이 글에서는 Java에서 문자열(String)을 출력하는 방법을 단계별로 살펴봅니다. 문자열은 문자와 영숫자 값으로 이루어진 데이터 패턴으로, 거의 모든 프로그램에서 필수적으로 사용되는 요소입니다. 문자열 생성의 기본 문자열을 만드는 가장 간단한 방법은 큰따옴표 안에 원하는 값을 넣는 것입니다. String str = "Welcome to the club!!!"; 코드에 문자열 리터럴이 등장하면 컴파일러는 자동으로 해당 값을 가진 String 객체를 생성합니다. 위 예제에서는 "Welcome to the

  13. 자바(Java)에서 두 숫자를 더하는 방법: Scanner 활용 예제까지 한 번에

    이 글에서는 자바(Java)에서 두 숫자를 더하는 방법을 단계별로 살펴봅니다. 자바에서는 가장 기본적인 산술 연산자인 +(덧셈 연산자)를 사용하여 손쉽게 두 숫자를 더할 수 있습니다.먼저 전체적인 동작 흐름을 예시로 확인해 보겠습니다.입력입력값이 다음과 같다고 가정합니다.input_1 : 10input_2 : 15출력실행 결과는 다음과 같습니다.Sum : 25알고리즘두 숫자를 더하는 과정은 다음과 같은 순서로 진행됩니다.Step 1 - 시작Step 2 - 세 개의 정수형 변수 선언: input_1, input_2, sumStep 3

  14. 자바(Java)로 두 숫자를 교환(Swap)하는 프로그램 만들기 – 알고리즘과 예제 코드

    이 글에서는 자바(Java)로 두 숫자의 값을 서로 바꾸는(swap) 방법을 소개합니다. 가장 대표적이고 안전한 방식은 임시 변수(temporary variable)를 하나 두고 값을 차례대로 옮기는 것입니다. 교환(Swap)의 기본 원리 두 변수의 값을 그냥 맞바꾸면, 먼저 대입한 쪽의 기존 값이 덮어써져 사라지게 됩니다. 따라서 첫 번째 값을 임시 변수에 미리 저장해 둔 뒤 교환 작업을 진행해야 값을 안전하게 보존할 수 있습니다. 입력 입력값이 다음과 같다고 가정해 보겠습니다. value_1 : 45value_2 : 70

  15. Java에서 표준 입력으로 숫자 읽기: Scanner와 BufferedReader 활용법

    이 글에서는 Java 프로그램에서 표준 입력(Standard Input)으로 숫자를 읽어오는 다양한 방법을 자세히 살펴보겠습니다. 가장 대표적인 방식은 Scanner 클래스의 nextInt() 메서드를 활용하는 것입니다.Scanner.nextInt() 메서드란?java.util 패키지에 포함된 Scanner 클래스의 nextInt() 메서드는 입력 스트림에서 다음 토큰을 정수(int) 타입으로 스캔하여 반환합니다. 인자 없이 호출된 nextInt()는 해당 Scanner 객체의 기본 진수(radix)를 기준으로 동작하며, 이는 ne

  16. Java에서 사용자 입력 받기: Scanner부터 BufferedReader까지

    이 글에서는 Java에서 사용자로부터 입력을 받는 방법을 단계별로 살펴봅니다. 가장 널리 쓰이는 방식은 java.util.Scanner 클래스를 이용하는 것이며, 상황에 따라 InputStreamReader와 BufferedReader를 조합해 사용할 수도 있습니다. Scanner 클래스의 주요 메서드 Scanner 클래스는 키보드 입력을 손쉽게 읽어올 수 있는 유틸리티 클래스입니다. 자주 사용되는 메서드는 다음과 같습니다. nextInt() – 입력된 다음 토큰을 int(정수) 타입으로 읽어옵니다. 별도의 진법(radix)을 지

  17. Java에서 두 개의 부동 소수점(float) 숫자를 곱하는 프로그램 만들기

    이 글에서는 Java를 사용하여 두 개의 부동 소수점(floating-point) 숫자를 곱하는 방법을 자세히 알아봅니다. 부동 소수점 숫자란 소수점 이하 값을 가지는 숫자를 의미합니다.Java의 float 데이터 타입은 단정밀도(single-precision) 32비트 IEEE 754 부동 소수점 방식을 따릅니다. 주로 부동 소수점 숫자가 대량으로 저장되는 대형 배열에서 메모리를 절약하기 위해 사용되며, 기본값(default value)은 0.0f입니다. 다만 float는 정밀한 값이 요구되는 경우, 예를 들어 통화(금액) 계산에

  18. Java로 두 개의 이진 문자열 더하기 – 알고리즘과 코드 예제 완벽 정리

    이 글에서는 Java에서 두 개의 이진 문자열(binary string)을 더하는 방법을 단계별로 살펴보겠습니다. 이진 문자열이란 0과 1의 조합으로 표현되는 수를 의미하며, 컴퓨터가 데이터를 처리하는 가장 기본적인 형태입니다.먼저 간단한 입출력 예시를 통해 어떤 결과를 만들 것인지 확인해 보겠습니다.입력 및 출력 예시예를 들어 아래와 같은 두 개의 이진수가 입력으로 주어졌다고 가정해 보겠습니다.입력10101 10001출력두 이진수를 더한 결과는 다음과 같습니다.100110알고리즘이 문제는 일반적인 10진수 덧셈과 같은 원리로 해결

  19. 자바(Java)로 두 개의 복소수 더하기 – 예제 코드로 배우는 완벽 가이드

    이 글에서는 자바(Java)로 두 개의 복소수를 더하는 방법을 단계별로 살펴봅니다. 복소수는 실수부에 더해 i로 표현되는 허수부를 가지는 수입니다. 다행히 두 복소수의 합은 생각보다 간단합니다. 실수부끼리, 허수부끼리 각각 더해 주면 됩니다. 아래는 그 동작 방식을 보여주는 예시입니다. 입력 15 +i24 와 3 +i7 출력 18 +i31 알고리즘 프로그램을 시작합니다. 세 개의 복소수 객체인 my_input_1, my_input_2, my_result를 선언합니다. 두 입력 복소수의 값을 지정합니다. 실수부와 허수부를 각각 더한

  20. Java로 두 숫자의 최대공약수(GCD) 구하는 방법

    ```html 이 글에서는 Java를 사용하여 두 숫자의 최대공약수(GCD, Greatest Common Divisor)를 구하는 방법을 알아봅니다. 최대공약수란 두 숫자를 모두 나누어 떨어지게 하는 수 중 가장 큰 수를 의미합니다.입력 · 출력 예시예를 들어 아래와 같은 두 개의 숫자가 주어졌다고 가정해 보겠습니다.첫 번째 숫자 : 18두 번째 숫자 : 24이때 기대되는 출력 결과는 다음과 같습니다.두 숫자의 GCD : 6알고리즘1단계 – 시작2단계 – 세 개의 정수형 변수(input_1, input_2, gcd)를 선언한다3단계

Total 1926 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:85/97  20-컴퓨터/Page Goto:1 79 80 81 82 83 84 85 86 87 88 89 90 91