본문 바로가기

JAVA/알고리즘 예제

[JAVA] 출장비 지급액 화폐 단위별 매수 계산 문제 직원 개인별로 지급되는 충장비 지급액에 대한 화폐 단위별 매수를 구한 후 결과를 출력하는 알고리즘을 구성하라. 화폐는 고액권을 우선으로 한다.화폐 단위는 5만원권 부터 1원권 까지 10종류로 한다.성명과 출장비지급액을 입력받는다. 성명에 quit가 입력될 경우 종료한다.출력은 성명, 출장비지급액, 개인별 각 화폐 매수로 하며, 마지막에 화폐 단위별 전체 매수를 출력한다.변수 설명은 주석으로 대체 출력 예시 콘솔창으로 입력과 출력을 동시에 하기 때문에 결과를 출력하기 여의치 않음.(AWT로 출력창을 만들어 보기.)(또는 2차원 배열로 출력해 보기) 기본적인 로직은 다음과 같다.package jungbo; import java.util.InputMismatchException;import java.util... 더보기
[JAVA] 화폐 단위별 매수 계산 금액을 입력하여 화폐 단위별로 화폐의 매수를 계산하는 순서도를 작성하시오.(단, 금액은 10,000원 이상이 입력되며, 화폐의 단위는 1원 권에서 50,000원 권 까지이다.) 실행 결과 package jungbo; import java.util.InputMismatchException;import java.util.Scanner; public class P225MoneyCounter {public static void main(String[] args) {int i=50000; //화폐 단위를 저장할 변수(총 10가지)//50000->10000->5000->1000->500->100->50->10->5->1 로 변화int sw=0; //단위를 바꿔줄 때 사용할 변수int money=0; //계산될 금액.. 더보기
[JAVA] 부호있는 8비트 2진수를 10진수로 변환 부호를 포함하는 8비트 2진수 값을 10진수로 변환하는 알고리즘을 작성하라 8비트 2진수 값의 최상위 비트는 부호비트이다.부호비트가 0일 경우 양수, 1일 경우 음수이다.(단, 음수의 경우 2의 보수로 표현) 실행 결과 1회 2회 3회 package jungbo; import java.util.Random; public class P114SignedBinaryToDegree {public static void main(String[] args) {int sbin[] = new int[8]; //최상위비트가 부호비트인 8비트 2진수를 받을 배열Random random = new Random();int i; // 반복문을 돌리기 위한 변수for(i=0;i 더보기
[JAVA] 소수로 삼각형 찍기 아래 실행 결과 처럼 2차원 배열에 직각 삼각형 형태로 1000까지의 자연수 중 2부터 시작하여 순차적으로 소수를 15개 까지 저장하는 알고리즘을 작성하라. package javalesson.com.javalesson.ch01test; public class T06PrimeTriangle {public static void main(String[] args) {int pri[] = new int[15]; //소수 15개를 넣을 배열int array[][] = new int[5][5]; //삼각형을 출력하기 위한 2차원배열int cnt; //소수인지 판별하기 위해 이전에 구해진 소수로 나누어 줄 횟수int P,Q; //P : 소수 Q: 소수 판별 반복문을 위한 변수int mok,na; //소수를 판별하기 .. 더보기
[JAVA] 7에 가장 가까운 정수 찾기 10개의 정수가 배열에 기억되어 있다. 10개의 정수 중에서 7에 가장 가까운 정수를 찾아 그 정수를 출력하고자 한다. 배열에 기억되어 있는 순서에 따라 10개의 정수와 7과의 차이값을 구하여 그 차이값 중 가장 최소값을 가지는 정수를 7에 가장 가까운 값으로 선택하여 출력하라. 배열에 기억된 10개의 데이터는 절대값이 500이하의 정수라고 가정한다. 실행 결과 1회 2회 3회 package jungbo; import java.util.Random; public class P118TheNumberColsestTo7 {public static void main(String[] args) {int i; //반복문 돌리기 위한 변수int number[] = new int[10]; //임의 정수 10개를 받기 .. 더보기
[JAVA] 8bit 2진수의 2의 보수 구하기 크기가 8인 배열에 입력되어 있는 이진수 8자리에 대하여 2의 보수를 구하여 출력하라.(단, 부호비트는 없는 것으로 간주) 실행 결과 1회 2회 3회 package jungbo; import java.util.Random; public class P119ComplementOf2 {public static void main(String[] args) {int bin[] = new int[8];//이진수 8자리를 받을 배열int i;//반복문 돌리기 위한 변수for(i=0;i 더보기
[JAVA] 5자리 2진수의 보수 구하기 0또는 1로 입력되는 다섯 개의 숫자를 배열에 입력받아 1의 보수와 2의 보수를 구하는 문제. 실행 결과 package jungbo; import java.util.InputMismatchException;import java.util.Scanner; public class P90Complement {public static void main(String[] args) {int bin[] = new int[5];//처음 입력받은 이진수를 저장할 배열int bo1[] = new int[5];//1의 보수를 저장할 배열int bo2[] = new int[5];//2의 보수를 저장할 배열int i; //배열의 자리수int C=1; //자리올림수(carry)//2의 보수를 구할때 첫 자리올림수는 1이어야한다./.. 더보기
[JAVA] 최대공약수, 최소공배수 계산 문제 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 유클리드 호제법으로 계산하여 출력해 보자. ※유클리드 호제법(互除法) 호제법이란 두 수가 서로 상대 수를 나누어서 원하는 수를 얻는 방법을 말한다. 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면 a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라 b를 r로 나눈 나머지 r'를 구하고 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 실행 결과 package jungbo; import java.util.InputMismatchException;import java.util.Scanner; public class P124DivisorDenomina.. 더보기
[JAVA] 약수(Divisor) 관련 문제 어떤 정수의 모든 약수 중 자신을 제외한 약수를 모두 합하면 자신과 같아지는 수가 있다. 예를 들어 6의 약수 1,2,3,6 중 6을 제외한 1, 2, 3 을 더하면 6이 되어 자신과 같아 진다. 4~1000까지 이러한 수를 찾아 출력하고, 그 개수를 출력하는 알고리즘을 만들어보자. 실행 결과 package jungbo; public class P109Divisor {public static void main(String[] args) {int LM = 0; //조건을 만족하는 수를 찾으면 횟수를 센다.int N; //4부터 1000까지 조건을 만족하는지 확인할 숫자int sum; //약수들의 합을 저장할 변수int K,J,R; //K : N의 가장 큰 약수를 저장할 변수. J : 약수인지 판별할 변수 .. 더보기
[JAVA] 소수의 개수 구하기 1~100까지 소수의 갯수 구하기 (25개) package javalesson.com.javalesson.ch01test; public class T05PnumCounter {public static void main(String[] args) {int array[] = new int[99];int i=0;for(i=0;i 더보기