public int[] solution(int[] lottos, int[] win_nums) {
// 0의 개수 count
int zero=0;
for (int i:lottos) {
if (i==0) zero++;
}
int size=lottos.length-zero;
int ans=0;
for (int i=0;i<lottos.length;i++) {
for (int j=0;j<win_nums.length;j++) {
if (lottos[i]==win_nums[j]) {
ans++;
break;
}
}
}
// System.out.println("zero"+zero);
// System.out.println("answer"+ans);
int minValue=ans;
int k=1;
for (int i=6;i>=2;i--) {
if (minValue==i) {
break;
}
else {
k++;
}
}
int mins=k;
int max=k-zero;
// System.out.println(mins+" "+max);
if (max==0) {
max=1;
}
int[] answer = {max,mins};
return answer;
}
3단계에서 고민이 많았음, 3단계는 ..의 개수를 .1개로 줄여야 됨

해결방법
1 .의 인덱스 찾기 -> 다음값도 .이라면 하나의 .으로 변경 replace 사용
String -> idx 접근 (CharAt(i))
int lt=0;
int rt=0;
while (lt<id.length()) {
if (id.charAt(lt)=='.') {
rt=lt+1;
String dot=".";
while (rt<id.length()) {
if (id.charAt(rt)=='.') {
dot+=".";
}
else {
break;
}
rt++;
}
if (dot.length()>1) {
id=id.replace(dot,".");
}
}
lt++;
}
String step3 = step2.toString().replace("..", ".");
while (step3.contains("..")) {
step3 = step3.replace("..", ".");
}
사용한 JAVA 용법
substring : String 분할하기
str.charAt(i) : String의 인덱스 접근
replace : 매우 중요! 치환하기
replace vs replaceAll(정규식 가능)
String test="aabbccddeefasdfabc";
// replace 사용
String result1=test.replace("abc","5");
System.out.println(result1); //aabbccddeefasdf5
// replaceAll 사용
String result2=test.replaceAll("[a,b,c]","5"); // [a,b,c]는 정규식 표현 : 안에 들어간 모든 문자
System.out.println(result2); //555555ddeef5sdf555
// 만약 replace로 555555ddeef5sdf555로 나타내려면 너무 지저분함
String result3=test.replace("a","5").replace("b","5").replace("c","5");
System.out.println(result3); //555555ddeef5sdf555
// replaceAll 정규식 표현 [^0-9]
// 숫자가 아닌것은 전부 공백으로 바꿔라
String test2="!@#$0022!#$$%asdfasdf1234";
String result4=test2.replaceAll("[^0-9]","");
System.out.println(result4); //00221234
public String solution(String new_id) {
// String -> to Char Array
char []temp=new_id.toCharArray();
// System.out.println(Arrays.toString(temp));
// 1단계 대문자 -> 소문자로 변경
// 2단계
String id="";
for (int i=0;i<temp.length;i++) {
// if (Character.isAlphabetic(temp[i]) && Character.isUpper(temp[i])) {
// id+=
// }
if (temp[i]=='-' || temp[i]=='.' || temp[i]=='_' || Character.isAlphabetic(temp[i]) || Character.isDigit(temp[i])) {
char data=temp[i];
if (Character.isAlphabetic(temp[i]) && Character.isUpperCase(temp[i])) {
data=Character.toLowerCase(temp[i]);
}
id+=data;
}
}
// System.out.println(id);
temp=id.toCharArray();
// System.out.println(Arrays.toString(temp));
// System.out.println("id:"+id);
// 3단계
// .의 인덱스 찾기 -> 다음값도 .이라면 하나의 .으로 변경 replace 사용
// String -> idx 접근 (CharAt(i))
int lt=0;
int rt=0;
while (lt<id.length()) {
if (id.charAt(lt)=='.') {
rt=lt+1;
String dot=".";
while (rt<id.length()) {
if (id.charAt(rt)=='.') {
dot+=".";
}
else {
break;
}
rt++;
}
if (dot.length()>1) {
id=id.replace(dot,".");
}
}
lt++;
}
// 3단계 다른 사람 풀이
// id=id.replace("..",".");
// while (id.contains("..")) {
// id=id.replace("..",".");
// }
// 4단계
if (id.charAt(0)=='.') {
id=id.substring(1);
}
int last=id.length()-1;
// System.out.println("last"+last);
if (last>0 && id.charAt(last)=='.') {
// System.out.println("last"+last);
id=id.substring(0,last);
}
// 5단계
if (id.length()==0) {
id+="a";
}
// System.out.println("new_id:"+id);
// 6단계
if (id.length()>=16) {
id=id.substring(0,15);
}
// System.out.println("new_id:"+id);
last=id.length()-1;
// System.out.println("last"+last);
if (last>0 && id.charAt(last)=='.') {
// System.out.println("last"+last);
id=id.substring(0,last);
}
// 7단계
if (id.length()<=2) {
char a=id.charAt(id.length()-1);
// System.out.print("a:"+a);
int size=id.length();
String temps="";
while (size<3) {
temps+=a;
size++;
}
// System.out.println("temps"+temps);
id+=temps;
}
// System.out.println(id);
return id;
}
정규표현식으로 2,3단계 풀이
String answer = new_id.toLowerCase(); // 1단계
answer = answer.replaceAll("[^-_.a-z0-9]", ""); // 2단계
answer = answer.replaceAll("[.]{2,}", "."); // 3단계
public int solution(String s) {
String nums[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
String values[]={"0","1","2","3","4","5","6","7","8","9"};
for (int i=0;i<nums.length;i++) {
s=s.replace(nums[i],values[i]);
}
int answer = Integer.parseInt(s);
System.out.println(answer);
return answer;
}
public int solution(int[] numbers) {
int answer=0;
int arr[]=new int[10];
for (int i=0;i<numbers.length;i++) {
arr[numbers[i]]=1;
}
for (int i=0;i<=9;i++) {
if (arr[i]==0)
answer+=i;
}
return answer;
}