반응형
[알고리즘][문자열][2908] 상수
*문제
https://www.acmicpc.net/problem/2908
* 풀이
숫자를 2개 입력받고 이를 뒤집어 max값을 구한다. 처음에 숫자 입력 갯수가 지정된지 모르고 배열로 풀다가 바꾸는 바람에 코드의 길이가 길어졌다ㅠ다른 코드들을 참고해보니 10으로 나눈 나머지 값으로 쉽게 구현이 가능하다.
또 굳이 pow를 이용하여 값을 계산하지 않더라도 valueof함수를 이용하면 String으로 되어있는 값을 int로 쉽게 바꿀 수 있다. 다음에는 더 짧게 구현해봐야겠다.
* 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package algorithm_String; import java.util.Scanner; public class q_2908 { public static void main(String[] args) { /* * 1. 두 수를 입력받는다. * 2. 두 수 모두 역순으로 다시 입력한다. * 3. 크기를 비교한다. * 4. 출력한다. */ Scanner scan = new Scanner(System.in); //입력받은 두 숫자를 자른다 String[] line = scan.nextLine().split(" "); char[][] tmp_num = new char[line.length][1001]; int[][] num = new int[line.length][1001]; //나뉜 두 숫자를 하나씩 나눈다. for(int i=0;i<line.length;i++) { for(int j=0;j<line[i].length();j++) { int x = line[i].length()-1-j; tmp_num[i][x]=line[i].charAt(j); num[i][x]=Character.getNumericValue(tmp_num[i][x]); } } int[] result_num = new int[line.length]; for(int i=0;i<line.length;i++) { for(int j=0;j<line[i].length();j++) { result_num[i]+=num[i][j]*Math.pow(10,line[i].length()-1-j); } } int max = result_num[0]; for(int i=0;i<result_num.length;i++) { if(result_num[i]>max) { max = result_num[i]; } } System.out.println(max); } } | cs |
반응형
'CS > Algorithm' 카테고리의 다른 글
[알고리즘][문자열][1764] 듣보잡 (0) | 2018.04.20 |
---|---|
[알고리즘][문자열][2941] 크로아티아 알파벳 (0) | 2018.04.19 |
[알고리즘] 백트래킹(Backtracking) (1) | 2018.04.13 |
[알고리즘][DP][1010] 다리놓기 (0) | 2018.04.13 |
[알고리즘][플로이드와샬][1389] 케빈 베이컨의 6단계 법칙 (0) | 2018.04.12 |
댓글