(BOJ) #7568 Big Python 솔루션 및 C# 솔루션


암호

#학생수 입력받기 input() 함수 사용
num_student = int(input()) 
# 학생들의 몸무게와 키를 담을 리스트 생성
student_list = ()
# for 문을 돌며 (변수 없이)   num_student 숫자 만큼 반복
for _ in range(num_student):
    # 무게와 키 변수에 map함수를 사용하여 정수 타입의 숫자를 담는다
    weight, height = map(int, input().split())
    # 학생 리스트에 키와 몸무게를 넣는다.

student_list.append((weight, height)) # for문을 돌며 학생리스트를 순회, 학생리스트의 값을 i에 담는다 for i in student_list: #랭크 변수 초기화 rank = 1 #for문을 돌며 i보다 몸무게와 키가 더 큰 학생 j를 찾는다 for j in student_list: if i(0) < j(0) and i(1) < j(1): # 찾았다면 랭크 +1 rank += 1 #결과 출력 end 는 결과를 한줄에 출력하기 위한 한정자 print(rank, end = " ")

누르다


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace BOJ2108
{
    internal class Program
    {

        static void Main(string() args)
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            int N = int.Parse(sr.ReadLine());
            List<int>rankList = new List<int>();
            List<Tuple<int, int>> studentList = new List<Tuple<int, int>>();

            for (int i = 0; i < N; i++)
            {
                int() a = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
                studentList.Add(new Tuple<int, int>(a(0), a(1)));
            }

            foreach ( Tuple<int,int> i  in studentList)
            {
                int rank = 1; 
                foreach(Tuple<int, int> j in studentList)            
                {
                    if(i.Item1 < j.Item1 && i.Item2 < j.Item2)
                    {
                        rank++;
                    }                                            
                
                }
                rankList.Add(rank);
            }     

            foreach(int i in rankList){
                sw.Write(i);  
                sw.Write(' '); 
            }
                   
            sr.Close();
            sw.Close();
        }
    }
}


확실히 Python의 코드는 훨씬 짧고 사전의 이중 키 제한과 같은 문제 없이 편리하게 처리할 수 있습니다.

C#으로 풀 수 있을 것 같아서 딕셔너리를 사용했는데, 아규먼트 예외 후 튜플을 사용해서 풀 수 있었다.

곧 파이썬으로 갈아탈 예정입니다…