본문 바로가기
728x90
반응형

알고리즘7

[알고리즘/java] 조합을 구하는 코드 공식 콤비네이션을 구하는 코드이다. int[] combi 배열을 만들고, for문으로 순회하면서 combi 배열을 채우고, 조합해야할 개수의 수만큼 도달했을 때 조합되어지는 수들의 경우를 출력한다. package _08_dfsBfs._009_getCombi; /** * 입력 4 2 출력 1 2 1 3 1 4 2 3 2 4 3 4 */ import java.util.Scanner; public class Main { static int[] combi; static int n, m; public static void dfs(int L, int s) { if(L == m) { for(int x : combi) System.out.print(x + " "); System.out.println(); } else { f.. 2021. 11. 30.
[알고리즘/java] 2차원 배열 행, 열, 대각선 최대값 구하기 배열의 크기 입력값 N이 주어진다. 배열의 값을 입력한 후, 행, 열, 대각선, 역대각선의 합을 구해서 최대값을 구해야 한다. 행 : arr[j][i] 열 : arr[i][j] 대각선 : arr[i][i] 역대각선 : arr[i][n-1-i] 입력값이 다음과 같이 주어질 때, 5 10 13 10 12 15 12 39 30 23 11 11 25 50 53 15 19 27 29 37 27 19 13 30 13 19 다음과 같은 결과가 나와야 한다. 155 import java.util.Scanner; public class Main { public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in).. 2021. 9. 6.
[알고리즘/java] 에라스토테네스의 체 - int형 배열 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력한다. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개이다. 배열의 크기를 N+1 크기로 선언한다. 그런 다음, for문을 2부터 순회하는데, arr[i]가 0이면, j를 i만큼 계속 값을 더해서 arr[j]의 값을 1로 초기화한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); System.out.println(m.solution(sc.nextInt())); } public stat.. 2021. 9. 6.
[알고리즘/java] 알맞은 팰린드롬(회문) 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다 문자열이 입력되면 해당 문자열이 팰린드롬이면 true, 아니면 false를 출력한다. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않는다. 알파벳 이외의 문자들의 무시한다. 팰린드롬을 만들 때 문자열을 뒤집어서 같은지 같지 않은지 확인만 해주면 된다. 정규표현식을 써서 알파벳이 아닌 문자는 공백으로 지워버린다. str = str.replaceAll("[^A-Za-z]", "").toLowerCase(); 그리고 문자열을 뒤집을 때, for문을 이용해서 하나하나 뒤집어서 문자열을 새로 만드는 것은 비효율적이다. StringBuilder의 reverse를 이용해서 뒤집으면 수월하게 만들 수 있다. String.. 2021. 9. 6.
[알고리즘/java] 중복된 문자 제거하기 소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력한다. 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지해야한다. String의 indexOf()를 활용하여 index값이 i와 일치할 때, 해당 문자를 반환되는 문자열에 추가하면 된다. 다음 입력이 주어질 때, ksekkset 다음과 같이 출력이 되어야 한다. kset import java.util.Scanner; public class Main { public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); System.out.println(m.solution(s.. 2021. 9. 6.
[알고리즘/java] 특정 문자만 뒤집기를 할 때 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성할 때, 이번에 새롭게 알게 된 메서드를 사용하여 풀면 좀 더 간단하고 쉽게 풀 수 있다. char[] s = str.toCharArray(); // 문자열을 쪼개서 char 배열로 만들어주는 메서드 Character.isAlphabetic(ch) // 해당 문자가 알파벳인지 확인해주는 메서드 다음 입력이 주어질 때, a#b!GE*T@S 다음과 같이 출력이 되어야 한다. S#T!EG*b@a import java.util.Scanner; public class Main { public static void main(String[] args) { Main m =.. 2021. 9. 6.
728x90
반응형