알고리즘/기초2023. 8. 8. 01:37주어진 2차원 배열의 복사를 이용하여 확장하기

자바 라이브러리의 메서드를 사용하지 않고 2차원 배열을 확장하는 코드이다 아래 배열을 가로세로 각각 1씩확장하고, 확장된 마지막 행과 열에는 각 행과 열의 총합을 저장하고 출력한다. int[][] score = { {100, 100, 100}, {20, 20, 20} , {30, 30, 30} , {40, 40, 40} , {50, 50, 50} }; 자바는 이미 생성된 배열을 자체적으로 확장 할 수 없기때문에 기존(score배열)보다 +1만큼 큰 새로운 배열을 선언하고 생성한다. int[][] result = new int[score.length+1][score[0].length+1]; result[i][j] = score[i][j]를 통해 기존 score배열을 result배열에 복사해주고, 마지막요소..

알고리즘/기초2023. 8. 8. 00:48간단한 암호화 프로그램

아래의 각각 영문자 소문자를 암호화해주는 배열, 숫자를 암호화해주는 배열을 이용하여 입력값을 암호화하여 출력해보자. char[] abcCode = { '`','~','!','@','#','$','%','^','&','*', '(',')','-','_','+','=','|','[',']','{', '}',';',':',',','.','/'}; //순서대로 a,b,c,d,e,f......z char[] numCode = {'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'}; //0 1 2 3 4 5 6 7 8 9 암호화할 값을 src로 입력받고, 암호화된 값을 저장할 result를 선언한다. String src = sc.nextLine(); //input String r..

알고리즘/기초2023. 8. 7. 21:41주어진 배열을 시계방향으로 회전시키는 프로그램

char[][] star = { {'*','*',' ',' ',' '}, {'*','*',' ',' ',' '}, {'*','*','*','*','*'}, {'*','*','*','*','*'} }; 위의 주어진 2차원배열을 시계방향으로 90도 만큼 회전시켜야한다. 먼저 결과를 저장하기위한 2차원배열 result[][]를 선언해주고, 시계방향으로 회전시킬경우 4 X 5배열에서 5 X 4배열로 변하기때문에 char[][] result = new char[star[0].length][star.length]; 위와 같이 2차원배열을 생성해준다. 시계방향으로 회전하기전 상태인 char[][] star 배열을 중첩for문을 사용하여 출력해준다. //4 X 5 배열(star) 출력 for(int i=0; i res..

알고리즘/기초2023. 8. 7. 16:52입력된 데이터를 읽고 각 숫자의 개수를 출력하는 프로그램

임의의 배열로 입력된 데이터를 읽어 각 데이터의 개수를 세어 *로 출력해주는 프로그램이다 임의의 데이터를 입력해준다. int[] answer = {1,4,4,3,1,4,4,2,1,3,2}; answer데이터의 범위가 1,2,3,4 총 4개이므로 데이터 개수를 세어줄 배열의 길이를 4로 선언하여 생성해준다. int[] counter = new int[4]; 데이터의 범위는 4이지만 index는 0부터시작하기때문에 answer[i] - 1을 해주고, 데이터와 일치하는 index의 값을 증감(++)해준다. for(int i=0; i

알고리즘/기초2023. 8. 7. 14:33거스름 돈 계산하기

입력된 값을 가지고 있는 한정된 동전의 수로 거스름돈을 반환하는 프로그램이다. 1. money를 동전단위로 나누어서 필요한 동전의 개수를 coinNum변수에 저장한다. (1230원일 경우 500 -> 2, 200 -> 2, 30->3) coinNum = money / coinUnit[i] 2. 보유한 동전에서 사용한 coinNum만큼을 뺀다, 만약 coin[](보유한동전)보다 coinNum이 크다면 보유한 동전만큼만 뺀다. if(coin[i] >= coinNum) { coin[i] = coin[i] - coinNum; }else { coinNum = coin[i]; coin[i]=0; } 3. 금액(money)에서 동전의 개수(coinNum)와 동전단위(coinUnit)를 곱한값을 뺀다. money -=..

알고리즘/기초2023. 8. 6. 22:56회문수(palindrome) 구하기

회문수란, 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다. 자바의 메서드를 이용하지않고 연산자만 이용하여 입력값이 회문수인지 아닌지 판별하는 프로그램이다. public class Main { public static void main(String[] args) { int number = 12321; int tmp = number; int result = 0; while(tmp !=0) { result = result * 10 + tmp % 10; tmp /= 10; } if(number == result) { System.out.println(number + "는 회문수 입니다."); }else { System.out.println(number + "는 회문수가 아닙니다."); } } } 숫자..

알고리즘/기초2023. 8. 6. 20:34주어진 문자열을 숫자인지 판별하는 프로그램

사용자로부터 값을 입력받아 입력받은 값이 숫자열만으로 이루어져있는지 확인하는 프로그램이다. public class Main { public static void main(String[] args) { String value = "12o34"; char ch = ' '; boolean isNumber= true; for(int i=0; i

알고리즘/기초2023. 8. 6. 18:56피보나치 수열

피보나치 수열은 앞의 두 수를 더해서 다음 수를 만들어 나가는 수열이다. 예를 들어 앞의 두 수가 1과 1이라면 다음 수는 2가되고 1,1,2,3,5,8,13,21... 과 같은식으로 진행된다. '앞 두개의 수를 합으로 갖는 다음값' 이라는 특징을 이용하여 코드로 구현하면 public class Main { public static void main(String[] args) { int num1 = 1; int num2 = 1; int num3 = 0; //1+1+2+3+5+8+13+21+34.... for(int i=0; i

image