More actions
imported>talin0528 No edit summary |
(Repair batch-0001 pages from live compare) |
||
| Line 1: | Line 1: | ||
== Status == | == Status == | ||
{| class="wikitable" | {| class="wikitable" style="width:100%;" | ||
|- | |- | ||
| Problem | | Problem | ||
| Line 20: | Line 20: | ||
import java.util.Scanner; | import java.util.Scanner; | ||
public class Main{ | public class Main{ | ||
public static void main(String | public static void main(String[] args){ | ||
Scanner sc = new Scanner(System.in); | Scanner sc = new Scanner(System.in); | ||
char | char[] c = sc.nextLine().toCharArray(); | ||
char | char[] p = sc.nextLine().toCharArray(); | ||
if(compare(c,p)) | if(compare(c,p)) | ||
System.out.println("YES"); | System.out.println("YES"); | ||
| Line 29: | Line 29: | ||
System.out.println("NO"); | System.out.println("NO"); | ||
} | } | ||
private static boolean compare(char | private static boolean compare(char[] c, char[] p) { | ||
int | int[] cSpread = new int[26]; | ||
int | int[] pSpread = new int[26]; | ||
boolean | boolean[] check = new boolean[26]; | ||
for(int i=0; i<c.length; i++){ | for(int i=0; i<c.length; i++){ | ||
cSpread | cSpread[c[i]-65]++; | ||
pSpread | pSpread[p[i]-65]++; | ||
} | } | ||
for(int i=0; i<cSpread.length; i++) | for(int i=0; i<cSpread.length; i++) | ||
if(!find(cSpread,pSpread | if(!find(cSpread,pSpread[i],check)) | ||
return false; | return false; | ||
return true; | return true; | ||
} | } | ||
private static boolean find(int | private static boolean find(int[] cSpread, int pWord, boolean[] check) { | ||
for(int i=0; i<cSpread.length;i++) | for(int i=0; i<cSpread.length;i++) | ||
if(!check | if(!check[i] && cSpread[i] == pWord){ | ||
check | check[i] = true; | ||
return true; | return true; | ||
} | } | ||
| Line 55: | Line 55: | ||
---- | ---- | ||
[[ACM_ICPC/2011년스터디]] | [[ACM_ICPC/2011년스터디]] | ||
Latest revision as of 23:56, 26 March 2026
Status
| Problem | 2159 | User | talin0528 |
| Memory | 2988K | Time | 3829MS |
| Language | Java | Result | Accepted |
Source
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char[] c = sc.nextLine().toCharArray();
char[] p = sc.nextLine().toCharArray();
if(compare(c,p))
System.out.println("YES");
else
System.out.println("NO");
}
private static boolean compare(char[] c, char[] p) {
int[] cSpread = new int[26];
int[] pSpread = new int[26];
boolean[] check = new boolean[26];
for(int i=0; i<c.length; i++){
cSpread[c[i]-65]++;
pSpread[p[i]-65]++;
}
for(int i=0; i<cSpread.length; i++)
if(!find(cSpread,pSpread[i],check))
return false;
return true;
}
private static boolean find(int[] cSpread, int pWord, boolean[] check) {
for(int i=0; i<cSpread.length;i++)
if(!check[i] && cSpread[i] == pWord){
check[i] = true;
return true;
}
return false;
}
}
Trial and Error
- 문제 이해를 잘못했었음 ㅠㅠ