Machineboy空
Exercism - Pythagorean Triplet, Tuple 본문
문제요약
세 수의 합이 주어지면, 피타고라스 법칙에 만족하는 세 수를 반환하라.
- a² + b² = c²
- a < b < c
난이도
Medium
풀이 포인트
- sum을 세 개의 숫자로 쪼개는 방법을 현명하게
- IEnumerable을 다루는 방법..
https://machineboy0.tistory.com/299
C# Tuple, IEnumerable
Tuple이란?The tuples feature provides concise syntax to group multiple data elements in a lightweight data structures.여러 값을 변수 하나에 저장할 수 있는 자료형값 형식// 1. 튜플 선언(필드 이름 X) 및 값 접근(double, int)
machineboy0.tistory.com
REVIEW
합이 주어졌을 때, 두 가지 숫자를 뽑으면 나머지 숫자는 합에서 두 숫자의 합을 빼면 되니까
이중for문으로 모든 경우의 수를 돌릴 수는 있겠다는 생각에 그냥 for문을 사용해서 조합을 구했다.
하지만, for문을 쓰면 뭔가 코드 차력show를 하는 듯한 기분이 들어서 찝찝한 기분이 드는데..
다른 이들의 코드를 살펴봐도 이중 for문 외에 더욱 화려한 풀이는 없는 듯 하다.
그리고 아직 Tuple자료형과 친하지 않다.
IEnumerable을 List 혹으 Array로 바꾸어 쓰는 방법이 아직은 익숙치 않아 반환형식을 맞추지 못해 거듭 오답이었다. 반성
CODE
// 내 코드
using System;
using System.Collections.Generic;
public static class PythagoreanTriplet
{
public static IEnumerable<(int a, int b, int c)> TripletsWithSum(int sum)
{
var triplets = new List<(int a, int b, int c)>();
// sum을 세 개의 숫자로 쪼개기
for(int i = 1; i < sum/2 ; i++){
for(int j = i + 1; j < sum - i - j ; j ++ ){
int a = i;
int b = j;
int c = sum - i - j;
if(a*a + b*b == c*c){
triplets.Add((a, b, c));
}
}
}
return triplets.ToArray();
// 피타고라스 정의 만족하는지 판단
// 만족하는 Tuple 반환하기
throw new NotImplementedException("You need to implement this method.");
}
}
'Computer > Coding Test' 카테고리의 다른 글
Exercism - Tim from Marketing , Nullable (0) | 2025.01.14 |
---|---|
Excercism - Interest is Interesting 정수형(float, double, decimal) (0) | 2025.01.14 |
Exercism - Dominoes 백트래킹, IEnumerable, Tuple (0) | 2025.01.13 |
C++ 기초 문법 다지기 예제 모음6 - 자료 구조 (0) | 2024.10.25 |
C++ 문법 기초다지기 예제 모음5 - 반복 (0) | 2024.10.24 |