Java 예제: 마방진(Magic Square)

마방진의 정의는 다음과 같습니다. 마방진(魔方陣)은 n2개의 수를 가로, 세로, 대각선 방향의 수를 더하면 모두 같은 값이 나오도록 n × n 행렬에 배열한 것이다. (…) n이 홀수일 때에는 마방진을 간단한 방법으로 만들 수 있다. 첫 번째 행의 가운데 칸에 1을 넣는다. 이어서 다음과 같은 규칙으로 숫자를 채운다. 다음 숫자를 대각선 방향으로 오른쪽 더보기…

Java 예제: 로또 (중복없이 배열에서 값 추출, 배열 원소 스왑) + HashSet 이용

HashSet 이용 (2020년 4월 24일 추가) Set 자료형은 중복을 허용하지 않는다는 특성을 이용한 코드입니다. import java.util.HashSet; import java.util.Set; public class SetTest { public static void main(String[] args) { Set<Integer> lotto = new HashSet<>(); while(lotto.size() < 6) { lotto.add((int)(Math.random() * 45 + 1)); } System.out.println(lotto); // Optional: Set to array Integer[] 더보기…

예제: 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 예제: 계산기 1

자바 초급 단계에서 만들어 볼 수 있는 계산기 프로그램입니다. 실제 계산기같은 모양의 GUI는 아니고 타자로 숫자와 연산자를 입력합니다. 첫 번째 예제는 while문과 switch문을 이용하였습니다. while(true) 부분은 연산자를 입력받는 부분인데, 올바르지 않은 연산자를 입력하였을 경우 다시 입력받도록 하기 위한 것입니다. 올바른 연산자를 입력한 경우 break를 통해 while 부분을 종료하고, 종료 명령을 입력한 더보기…