데굴데굴이
데굴이의 개발일지
데굴데굴이
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프로그래밍
      • C,C++
      • C#
      • 백준(BOJ)
      • 알고리즘
      • HTML
      • WinAPI
      • ETC
    • 유니티
      • 쉐이더
    • 컴퓨터 구조
    • 일본어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 10811
  • 재귀함수가 뭔가요?
  • 정적 라이브러리 만들기
  • 라이브러리 적용
  • 25644번
  • Sequence Point
  • multable
  • msvc++
  • 25644
  • 컴파일
  • 1343번
  • C언어
  • 시퀀스 포인트
  • 동적 라이브러리 만들기
  • 라이브러리
  • 백준
  • C
  • 전처리
  • 바구니 뒤집기
  • 평가 순서
  • 최대 상승
  • 1158번
  • 1032번#
  • 10811번
  • c++
  • 동적 라이브러리
  • 동적 라이브러리 적용
  • 정적 라이브러리
  • 알고리즘
  • BOJ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
데굴데굴이

데굴이의 개발일지

프로그래밍/백준(BOJ)

[백준(BOJ) / C][Bronze Ⅰ] 2869번 : 달팽이는 올라가고 싶다

2024. 1. 6. 00:03
반응형

문제

https://www.acmicpc.net/problem/2869

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net


풀이

처음에는 반복문을 사용하여 풀면 되겠다고 생각했고 너무 쉽다고 생각했는데, 결과는

시간 초과로 실패...

 

그 이유를 보니 0.25초안에 1,000,000,000 라는 큰 숫자를 다 처리하기에는 너무나도 모자란 시간이기에 이건

수학적으로 접근해야겠다고 생각했다.

 

아침에는 A 만큼 가고 밤에는 B 만큼 떨어진다. 그렇다면 하루에 올라가는 거리는 A-B, 

그리고 마지막 날에는 안떨어지기떄문에 총 올라가야하는 거리는 V-B 이다. 

 

그렇다면 ( V - B ) / ( V - A )로 나누어서 깔끔하게 안나누어질수도 있기때문에 +1를 한다.

그런데 +1를 하더라도 안 나뉘어지는 경우도 있으니 ( V - B - 1 ) / ( V - A ) + 1 를 하면 정확한 값이 나온다.


소스코드

#include <stdio.h>

int main(void)
{
	int A, B, V, count = 0;
	scanf("%d %d %d", &A, &B, &V);
	
	count = ( V - B - 1) / (A - B) + 1;

	printf("%d", count);
	
	return 0;
}
반응형

'프로그래밍 > 백준(BOJ)' 카테고리의 다른 글

[백준(BOJ) / C][Silver Ⅳ] 10845번 : 큐  (0) 2024.01.13
[백준(BOJ) / C][Silver Ⅴ] 1343번 : 폴리오미노  (0) 2024.01.06
[백준(BOJ) / C][Silver Ⅳ] 10773번 : 제로  (0) 2024.01.04
[백준(BOJ) / C][Silver Ⅳ] 9012번 : 괄호  (1) 2024.01.03
[백준(BOJ) / C][Silver Ⅴ] 25644번 : 최대 상승  (0) 2024.01.03
    '프로그래밍/백준(BOJ)' 카테고리의 다른 글
    • [백준(BOJ) / C][Silver Ⅳ] 10845번 : 큐
    • [백준(BOJ) / C][Silver Ⅴ] 1343번 : 폴리오미노
    • [백준(BOJ) / C][Silver Ⅳ] 10773번 : 제로
    • [백준(BOJ) / C][Silver Ⅳ] 9012번 : 괄호
    데굴데굴이
    데굴데굴이

    티스토리툴바