백준 1193번 - 분수찾기 c언어

김대일·2021년 5월 5일
0

지그재그 순서로 차례대로 분수가 나올때 순서를 입력하면 어떤 분수인지 찾아내는 프로그램.

접근방법

  • 분수가 나오는 패턴을 파악해야한다.
  • 대각선의 분수 갯수는 1씩 증가한다.

#include <stdio.h>

int number,d,t; // number 는 몇번쨰 분수, d는 대각선 위치 

int main(){
  scanf("%d", &number);   // 사용자 입력값 받기

  for(;d*(d+1)/2 < number;d++){  // 대각선 하나당 숫자가 1개씩 증가해서 모든 숫자들의 갯수를 더해줘서 몇번째 대각선에 사용자 입력값이 있는지 확인
  }

  t = number - d*(d-1)/2;  //  t는 대각선안에 몇번쨰 분수인지 찾아내는 변수
    // 14   -  5 * (4) /2 = 14 - 10 = ( t = 4 )

  if ( d % 2 == 0 ){  // 짝수번째 대각선은 위에서 아래
    printf("%d/%d", t, d-t+1);
  }

  else   // 홀수번째 대각선은 아래에서 위부터
  printf("%d/%d",d-t+1,t);

	return 0; 
}

느낀점

패턴을 찾아내는 연습을 좀 더 해야겠다. 아직은 눈에 확 들어오진 않는것 같다.

profile
도비코딩

0개의 댓글