250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- joystick
- Vector3
- rigidbody
- LayerMark
- 일시정지
- Prefabs
- Blend Type
- Scrooling
- Object Poling
- raycasting
- 유니티
- Unity
- Animation State Machine
- Object Pooling
- Ainimation Blending
- 플레이어 이동
- Transform
- rotation
- Hp바
- Parallax
- CSharp #자료구조
- 패럴렉스
- raycast
- 2D슈팅게임
- Hpbar
- 오브젝트 풀링
- 스크롤링
- 프리팹
- 플레이어 방향전환
- apk
Archives
- Today
- Total
주녘공부일지
[프로그래머스 C#] Lv.2 점 찍기 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/140107#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 정답코드 및 핵심 아이디어, 유의사항
x 좌표를 0부터 k씩 더해가며 x 값에 따른 y 값의 최대를 구해 가질 수 있는 y 값의 개수를 구하면 되는 문제- 사실 문제 자체는 굉장히 쉬운데 함정이 숨어있음 -> int형의 크기를 벗어날 수 있음
int d = 1000000;
long dd = d * d; // int형으로 연산되기 때문에 크기 범위를 벗어남
Console.Write(dd); // -727379968 출력
dd = (long)d * (long)d; // 올바른 결과
Console.Write(dd); // 1000000000000 출력 (올바른 결과)
dd = (long)Math.Pow(d, 2); // 올바른 결과
Console.Write(dd);// 1000000000000 출력
주석 참조
using System;
public class Solution
{
public long solution(int k, int d)
{
long answer = 0; // 원점을 포함한 상태로 시작
long dd = (long)Math.Pow(d, 2);
long xx;
// x 좌표 값을 기준으로 해당하는 값에 따라 가질 수 있는 y의 개수를 구함
for (int x = 0; x <= d; x += k)
{
xx = (long)Math.Pow(x, 2);
int maxY = (int)Math.Sqrt(dd - xx); // x좌표에 따른 y가 가질 수 있는 최대 값
answer += (maxY / k) + 1;
}
return answer;
}
}
728x90
'Programmers - C# > CodingTest Lv.2' 카테고리의 다른 글
[프로그래머스 C#] Lv.2 점프와 순간 이동 (1) | 2023.12.07 |
---|---|
[프로그래머스 C#] Lv.2 H-Index (1) | 2023.12.06 |
[프로그래머스 C#] Lv.2 행렬의 곱셈 (1) | 2023.12.05 |
[프로그래머스 C#] Lv.2 최댓값과 최솟값 (1) | 2023.12.05 |
[프로그래머스 C#] Lv.2 다음 큰 숫자 (1) | 2023.12.05 |