Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

AncientCipher/강소현: Difference between revisions

From ZeroWiki
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[] args){
  public static void main(String[] args){
  Scanner sc = new Scanner(System.in);
  Scanner sc = new Scanner(System.in);
  char[] c = sc.nextLine().toCharArray();
  char[] c = sc.nextLine().toCharArray();
  char[] p = sc.nextLine().toCharArray();
  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[] c, char[] p) {
  private static boolean compare(char[] c, char[] p) {
  int[] cSpread = new int[26];
  int[] cSpread = new int[26];
  int[] pSpread = new int[26];
  int[] pSpread = new int[26];
  boolean[] check = new boolean[26];
  boolean[] check = new boolean[26];
  for(int i=0; i<c.length; i++){
  for(int i=0; i<c.length; i++){
  cSpread[c[i]-65]++;
  cSpread[c[i]-65]++;
  pSpread[p[i]-65]++;
  pSpread[p[i]-65]++;
  }
  }
  for(int i=0; i<cSpread.length; i++)
  for(int i=0; i<cSpread.length; i++)
  if(!find(cSpread,pSpread[i],check))
  if(!find(cSpread,pSpread[i],check))
  return false;
  return false;
  return true;
  return true;
  }
  }
  private static boolean find(int[] cSpread, int pWord, boolean[] check) {
  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[i] && cSpread[i] == pWord){
  if(!check[i] && cSpread[i] == pWord){
  check[i] = true;
  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

  • 문제 이해를 잘못했었음 ㅠㅠ

ACM_ICPC/2011년스터디