【Java】AtCoder의 ABC-195에 참가했습니다(레이트:230→251).

안녕하세요.

2021/3/13에 AtCoder의 ABC-195에 참가했습니다.
요율은 다음과 같습니다.



C문제는 의외로 여유로 풀었습니다.
그러나 B문제가 풀리지 않았다는, 최초의 전개··.

레이트는 230→251로 갱신!
B로 꼬였지만 레이트가 내려가지 않아서 좋았다. 순위는 4606위입니다.
그러나 이 페이스라면, 갈색까지 반년 가까이 걸릴 것 같다··. 최선을 다하십시오.

A 문제



M, H를 입력.
H가 M의 배수이면 Yes, 아니면 No를 출력.
문제문상은, 몬스터 운운들이 써 있었습니다만, 알기 어려워지므로 할애합니다.
import java.util.Scanner;

public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
  int m = sc.nextInt();
  int h = sc.nextInt();
  if(h%m==0){
  System.out.println("Yes");
  }else{
  System.out.println("No");
  }

}
}


B 문제



A, B, W를 입력.
귤이 복수 있고, 무게가 A그램 이상, B그램 이하.
임의의 개수를 꺼내자 W 킬로그램이 되었다.
가능한 미칸의 최소 개수, 최대 개수를 구한다.

→ 풀 수 없었습니다. 결과를 보면, 풀고 있는 사람도 많을 것 같다.
뭔가 관점이 부족했을까.

C 문제



특정 숫자 N을 입력합니다.
1부터 N까지 차례로 숫자를 기재했을 때, 정수 입력시의 자리수 단락(1,000라든지)의 콤마를 친 횟수.
자릿수 구분은 3자리마다 행해지므로, 1000의 누승을 요구해,
1000의 제곱(1)보다 큰지 여부
→1000의 1승-1(1000-1=999)까지는 ​​쉼표 0개를 친다.

1000의 제곱(1000)보다 큰지 여부
→1000의 제곱-1(1,000,000-1=999,999)까지는 ​​쉼표 1개를 친다.
:
:
같은 루프 프로그램으로 만들었습니다.
지금까지의 TLE의 교훈을 근거로, 1부터 어리석게 1개씩 처리하는 프로그램은 쓰지 않는다고 결정, 어떻게든 1발로 AC를 취했습니다. .
import java.util.Scanner;

public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
  long n = sc.nextLong();
  long nzan = n;
  long conrui = 0;
  long ruijo = 1;
  long point = 1;
  for(long i=0;i<=7;i++){
    if(nzan>999*ruijo){
      conrui = conrui + (i * (((ruijo*1000)-1) - point + 1));
    }else{
      conrui = conrui + (i * (nzan - point + 1));
      break;
    }
    point = ruijo*1000;
    ruijo = ruijo*1000;
  }
 System.out.println(conrui);

}
}


감상



B에 빠지겠다고 생각하지 않았습니다. 미안해. 앞으로 정진하겠습니다.
앞으로도 철저히 노력하고 갈색을 목표로하고 싶습니다!
마찬가지로 회색 레벨에서 노력하고있는 분, 서로 노력합시다!

좋은 웹페이지 즐겨찾기