👨💻Programming/알고리즘 풀이
java - DashInsert 함수 - 짝수 홀수 뒤에 연속적이게 되면 문자 넣기
코너(Corner)
2020. 11. 22. 12:08
반응형
java - DashInsert 함수 - 짝수 홀수 뒤에 연속적이게 되면 문자 넣기
DashInsert 함수는 숫자로 구성된 문자열을 입력받은 뒤, 문자열 내에서 홀수가 연속되면 두 수 사이에 - 를 추가하고, 짝수가 연속되면 * 를 추가하는 기능을 갖고 있다. (예, 454 => 454, 4546793 => 454*67-9-3) DashInsert 함수를 완성하자. 출처
- 입력 - 화면에서 숫자로 된 문자열을 입력받는다.
"4546793"
- 출력 - *, -가 적절히 추가된 문자열을 화면에 출력한다.
"454*67-9-3"
출력문
소스 코드
package Lv1_2;
import java.util.ArrayList;
import java.util.Scanner;
public class DashInsert2 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
ArrayList<String> dash = new ArrayList<String>();
// String을 갖고있는 자료타입(클래스타입)을 명시해준다.
System.out.print("정수 입력 >");
String num = sc.next();
String[] strArray = num.split("");
// split 함수로 입력한 문자열 잘라서 배열에 넣기
// 문자열을 자른 배열을 strArray로 가진 인덱스 만큼 넣고
for (int i = 0; i < strArray.length; i++ ) {
dash.add(i,strArray[i]);
// 배열리스트 Dash 인덱스에 i칸씩 집어넣는다.
}
for (int j =0; j<dash.size()-1; j++) {
// 배열리스트의 길이 만큼 반복할건데 마지막 -1인 이유는
// 그 끝 index가 바로 앞 index와 비교할 값이 존재하지 않아서 조건걸음
// 애초에 안하면 오류남
if(dash.get(j).contentEquals("-") || dash.get(j).contentEquals("*")) {
// 배열리스트의 있는 j 인덱스가 이미 "-","*" 존재하면
// continue; 무시
continue;
}
else if (Integer.parseInt(dash.get(j))%2 == 0 && Integer.parseInt(dash.get(j+1))%2 == 0) {
// 배열리스트에 있는 문자열을 정수로 변한하여 2로 나누어 계산 때릴 때
// 연속적으로 (한단계 높은 인덱스도) 짝수라면 *을 집어넣기
dash.add(j+1,"*");
} else if (Integer.parseInt(dash.get(j))%2==1 && Integer.parseInt(dash.get(j+1))%2 == 1 ) {
// 위 계산처럼 마찬가지로 홀수가 연속적 이면 "-"
dash.add(j+1, "-");
}
}
// 향상 for문으로 배열리스트 확인하기
for (String str : dash) {
System.out.print(str);
}System.out.println();
sc.close(); //스캐너 닫아버리기
}
}
반응형