【Java】AtCoder의 ABC-200에 참가했습니다(레이트:278→264).

안녕하세요.

2021/5/8에 AtCoder의 ABC-200에 참가했습니다.
요율은 다음과 같습니다.



C문제로 집어들었습니다.
레이트는 278→264로 다운! 순위는 6646/8577이었다.
오, 아, 그, 라는 느낌이군요.

A 문제



세기를 요구하는 프로그램. 철저히 테스트해 버렸습니다만, 뭐 어떻게든.

Main.java
import java.util.Scanner;

public class Main{

public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
  int n = sc.nextInt();
  System.out.println((n-1)/100+1);

}
}


B 문제



어느 숫자, N에 대해서, K회 이하의 처리를 반복한다.
· N이 200의 배수라면 200으로 나눈다.
・200의 배수가 아니면, 말미에 200을 부여한다(123이면, 123200으로 한다)

여기는 말한대로, 뭐 어떻게든.
그렇지만, 200을 부여하는데, 캐릭터 라인형으로 변환해 부여하는 것은 좋네요.
1000배로 200을 더하는 것이 똑똑하네요.
나중에 되돌아 보는 것도 중요합니다.

Main.java
import java.util.Scanner;

public class Main{

public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
  long n = sc.nextLong();
  long k = sc.nextLong();
  long nwk = n;
  String nwks = String.valueOf(n);
  for(int i=0;i<k;i++){
    if(nwk%200==0){
      nwk = nwk/200;
    }else{
      nwks = nwks + "200";
      nwk = Long.parseLong(nwks);
    }
    nwks = String.valueOf(nwk);
  }
  System.out.println(nwk);

}
}

C 문제



N이 문자열 Ai ~ An을 입력.
Ai-Aj가 200의 배수, 이 성립하는 조합은 몇인가?
타임 아웃이라고는 알고는 있었지만, 좋은 로직이 생각하지 않고 ··입력시에, 입력 끝난 모든 캐릭터 라인을 비교하는 처리를 우선은 짜 보았습니다.
당연히 TLE.

다음으로, 아래 2자리수가 같은 것은, 「조건이 성립할 가능성이 있는 조합」이라고 생각 100개의 배열에, 하 2자리수가 같은 것을 분류해, 최후에 정리해 계산하는 방법을 취해 보았습니다만, 타임 아웃에 가세해 런타임 에러로 발생해 종료 3분전에 패배.
이었다.

감상



풀 수 없었던 C문제를, 예를 들면 내일 해설을 참고로 풀어 보거나, 더 하는 편이 좋을 것이라고 생각합니다만, 시간도 한정되어 있으므로 마음이 가는 대로 학습을 진행합니다.
회사에서도, 경기 프로그래밍의 책을 추천되고 있었으므로, 역시 읽어 볼까.

그럼 또.

좋은 웹페이지 즐겨찾기