[C#] 백준 22938번 백발백준하는 명사수

2024. 4. 5. 11:20·Language/C#
반응형

[ 문제 ]

백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데...

바로 두 과녁을 한번에 맞추는 스킬이다. 이를 연습하기 위해 두 과녁이 겹치는 부분이 있어 한번에 맞추기가 가능한지 알아보고 싶어졌다.

여러분은 백발백준이 연습하는 과정을 도와주기 위해 원 모양으로 생긴 두 과녁이 겹치는 부분이 존재하는지 확인하는 프로그램을 작성해보자.

 

[ 코드 ]
1. 내 코드

StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

string[] input1 = sr.ReadLine().Split();
double x1 = double.Parse(input1[0]);
double y1 = double.Parse(input1[1]);
double r1 = double.Parse(input1[2]);

string[] input2 = sr.ReadLine().Split();
double x2 = double.Parse(input2[0]);
double y2 = double.Parse(input2[1]);
double r2 = double.Parse(input2[2]);

double distance = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));

if (distance < (r1+r2))
{
    sw.Write("YES");
}
else
{
    sw.Write("NO");
}

sw.Flush();
sw.Close();
sr.Close();

 

2. 다른 사람 코드

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace no22938try1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] points1 = Console.ReadLine().Split(' ');
            string[] points2 = Console.ReadLine().Split(' ');

            ulong x = (ulong)Math.Abs(long.Parse(points1[0]) - long.Parse(points2[0]));
            ulong y = (ulong)Math.Abs(long.Parse(points1[1]) - long.Parse(points2[1]));
            ulong r = ulong.Parse(points1[2]) + ulong.Parse(points2[2]);
            x *= x;
            y *= y;
            r *= r;

            if (r > x + y) Console.WriteLine("YES");
            else Console.WriteLine("NO");
        }
    }
}

 

[ 추가 ]

두 점 사이의 거리를 구하는 공식 피타고라스의 정리를 이용한 공식이다.

https://mathbang.net/408#gsc.tab=0

 

두 점 사이의 거리, 좌표평면위의 두 점 사이의 거리

두 점 사이의 거리인데요 이건 중학교 때 이미 다 해봤어요. 좌표평면에서 두 점 사이의 거리요. 직각삼각형과 피타고라스의 정리를 이용해서 두 점 사이의 거리를 구했었죠? 한 번 공부했던 거

mathbang.net

 

[ 실행화면 ]

case: 1
case:2

 

 

 

 

 


문제링크: https://www.acmicpc.net/problem/22938

 

22938번: 백발백준하는 명사수

백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데... 바로 두 과녁을

www.acmicpc.net

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Language > C#' 카테고리의 다른 글

[C#] 백준 24416번 알고리즘 수업 - 피보나치 수 1  (0) 2024.04.05
[C#] 백준 16483번 접시 안의 원  (0) 2024.04.05
[C#] 백준 14264번 정육각형과 삼각형  (0) 2024.04.04
[C#] 백준 7510번 고급 수학  (0) 2024.04.04
[C#] 백준 3034번 앵그리 창영  (0) 2024.04.03
'Language/C#' 카테고리의 다른 글
  • [C#] 백준 24416번 알고리즘 수업 - 피보나치 수 1
  • [C#] 백준 16483번 접시 안의 원
  • [C#] 백준 14264번 정육각형과 삼각형
  • [C#] 백준 7510번 고급 수학
석영
석영
관심 분야는 AR, VR, 게임이고 유니티 공부 중 입니다. (정보처리기사,컴퓨터그래픽스운용기능사 취득)
반응형
석영
유석영의 개발공부
석영
전체
오늘
어제
  • 분류 전체보기
    • Unity
      • Project
      • Tip
      • Assets
    • Record
      • TIL
      • Game
    • Language
      • C#
      • Node.js
      • HTML, JS
    • Study
      • Linear Algebra

인기 글

최근 글

hELLO· Designed By정상우.v4.5.2
석영
[C#] 백준 22938번 백발백준하는 명사수

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.