zj3t

email: euntaejang@gmail.com

Latest Posts

Algospot-0-1수열

By 오후 2:22

자바로 푸는게 편할 꺼같아서 오랜시간 풀었는데 자바는 실행시간이 느려 아무리 빨리짜도 걸리더군요.

알고리즘 그대로 C로 적용해서 풀어야겠어요

그래도 푼게 아까워서 자바로 푼걸 포스팅하겠습니다.


import java.util.Scanner;

public class Main {
public static void main(String[] args){
int count=0;
String num=null;
String s1;
String s2;
int len=0;

Scanner scanner=new Scanner(System.in);  //입력 사용준비
num=scanner.nextLine();  //문자열을 입력받음
len=num.length();  //문자열의 길이를 구함

String[] arrays=new String[len];
int[] value=new int[len]; //문자열의 길이만큼 배열을 정의

for(int i1=0; i1<len; i1++){
arrays[i1]=num.substring(i1,i1+1); //문자열을 1크기로 잘라 할당
value[i1]=Integer.parseInt(arrays[i1]); //문자를 정수로 바꿈 
}

count=scanner.nextInt(); //테스트 횟수를 입력 

for(int i=0; i<count; i++){
s1=scanner.next();
s2=scanner.next(); //띄어쓰기 단위로 두개의 문자를 입력받음
int c=0;

int n1=Integer.parseInt(s1);
int n2=Integer.parseInt(s2); //각각 입력받은 문자를 정수형으로 변환

                        //밑에는 해석하기 쉽습니다.
if(n1<n2){
for(int j=n1; j<n2; j++){
if(value[j]==value[j+1]){
c++;
}
}
if(c==(n2-n1))
{
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
else if(n1>n2){
for(int j=n2; j<n1; j++){
if(value[j]==value[j+1]){
c++;
}
}
if(c==(n1-n2))
{
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
}
}
}

You Might Also Like

0 개의 댓글