Java 예제: 모래시계 모양 배열 만들기

모래시계 모양으로 배열을 만드는 예제입니다. import blog.gui.PrintArray; public class Sandglass { public static void main(String[] args) { int[][] array = new int[5][5]; int value = 1; // 배열 각 칸마다 들어갈 값. 1씩 증가한다. int mid = (int) Math.ceil((double)array.length / 2); // ceil(올림) 내의 값은 double이어야 한다. array.length는 int형이다. // 더보기…

Java Swing 예제: 다차원 배열 표시하기 (기초 설정 방법, for문으로 swing 요소 반복 등)

Swing의 기초 코드와 요소 반복 예제입니다. Swing 코드 작성 순서는 대략 다음과 같습니다. javax.swing.JFrame 클래스를 상속받는 클래스를 생성 라벨, 박스, 패널 등 컴포넌트 요소들을 private으로 선언 프레임의 초기 설정을 생성자 또는 적당한 위치에서 선언 컴포넌트 요소들을 프레임에 배치하는 메소드를 작성 package com.apple.hangeul; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.util.ArrayList; 더보기…

예제: 1 또는 2의 보수 구하기

여기서 n의 보수(compliment)라는 용어의 뜻은 주어진 수치의 각 자리의 값을 n-1에서 감산하고 그 결과의 최하위의 자리에 1을 가산하여 구하는 수치를 뜻합니다. 예를 들어 10100 이라는 2진수 숫자가 있는 경우 1의 보수는 01011입니다. 2의 보수를 구하는 방법은 1의 보수의 결과에 1을 더하면 됩니다. 2의 보수 계산시 주의할 점은 캐리(한 자리 올리는 더보기…

Java 예제: 가장 큰 소수 찾기

여기서 소수의 정의는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻합니다. 특정 수를 1부터 그 자신의 수까지 쭉 나눠봤을 때 나머지가 0인 경우가 두 번 뿐이라면 그 수는 소수라고 볼 수 있을 것입니다. import java.util.Scanner; public class PrimeNumber { public static void main(String[] args) { Scanner s = 더보기…

Java 예제: 4자리 특정 암호 찾기

이 예제는 아래 문제를 자바 코드를 사용해 푸는 문제입니다. 조건 : 종이와 펜을 사용하지 말것. 즉 수학으로 풀지 말 것 4자리 비밀번호 맞추기 1. 1번째 자리의 수는 4번째 자리의 수보다 2더 크다. 2. 2번째 자리의 수가 3번째 자리의 수보다 작다. 3. 4자리 모두 0이 아니다. 4. 비밀번호 + 비밀번호 뒤집은 더보기…

Java 예제: 업앤다운(Up and Down)

업앤다운 게임이란 세 명이서 하는 게임이며 한 명(중재자)이 임의의 숫자를 고른 뒤 나머지 두 사람이 번갈아가며 그 숫자를 맞추는 게임이라고 합니다. 만약 중재자가 50을 선택했는데 A가 65를 말했으면 중재자가 ‘높다’고 말해야 하며 B가 25를 말했다면 중재자가 ‘낮다’라고 말해야 합니다. 알고리즘 방법 중 ‘바이너리 서치(이진 탐색)’의 원리와 비슷하다고 볼 수 있겠네요. 더보기…

Java 예제: 배스킨라빈스 31 (먼저 31을 외치면 지는 게임)

저는 뼛속까지 아싸라 배스킨라빈스라는 게임이 뭔지 몰랐었는데요.. 두 사람이서 번갈아가면서 1에서 3까지를 말하다가 어떤 사람이 31을 말하게 되면 그 사람이 지는 게임이라고 합니다. Java 예제: 업앤다운(Up and Down) 과 유사한 구조입니다. 여기서 유사 인공지능을 구현하는데 컴퓨터가 지고 있는 게임을 하면 안되기 때문에 28 이상의 수에서 턴이 돌아온다면 컴퓨터가 무조건 이기는 판단을 더보기…

Java 예제: 가위바위보 (공식 이용법 추가)

컴퓨터와 가위바위보를 하는 게임입니다. 컴퓨터는 난수를 이용해 낼 패를 결정합니다. 가위바위보 스트링을 만드는 부분이 번거롭기 때문에 gbbStr 이라는 별도의 메소드로 분리해 해당 작업을 처리하도록 히겠습니다. 이 예제는 자바 계산기의 내용과 이어집니다. import java.util.Scanner; public class Random03 { public static void main(String[] args) { while(true){ System.out.println(“===가위 바위 보 ===”); int user; while(true) 더보기…

Java 예제: 랜덤박스 (Math.random 이용)

일본산 온라인 과금 게임같은 경우 랜덤박스로 카드를 뽑을 수 있는 시스템이 있습니다. 여기서 나오는 카드의 등급은 희소성을 기준으로 SSR(Super-super Rare), SR(Super Rare), R(Rare) 등 총 3개의 등급으로 나뉩니다. 지금 작성할 예제는 10개의 카드를 무작위로 뽑는 프로그램인데요, 카드 등급별로 나오는 확률이 전부 다릅니다. **SSR** : 3% *SR* : 10% R : 더보기…

자바(Java): 람다식 (Lambda Expression) 기초 (Java 8 이상)

람다식은 함수형 인터페이스(Functional Interface)을 쉽게 사용할 수 있도록 지원합니다. 함수형 인터페이스는 메소드가 한 개만 있는 인터페이스를 의미하며, 보통의 인터페이스에 메소드를 한 개만 만들면 자동으로 함수형 인터페이스가 됩니다. 컴파일러 단계에서 함수형 인터페이스를 명시하고 싶다면 @FunctionalInterface 를 이용합니다. 이것을 사용할 경우 인터페이스 내에 메소드가 2개 이상인 경우 컴파일시 오류가 발생하여 강제적으로 메소드를 더보기…