Outdated/Algorithm Solution

[BOJ] 1074번 Z

해달 2020. 6. 29. 08:00

복기

-


코드

  • C++ 17


#include <stdio.h>

 

int N, R, C;

 

int main()

{

    scanf("%d %d %d", &N, &R, &C);

 

    int ans = 0;

    while (N)

    {

        // 어느 사분면에 속해있는지 구분하기 위한 기준이다.

        int s = (1 << N - 1);

        

        int q = 0;

        // 1사분면

        if (R < s && C < s)

            q = 0;

        // 2사분면

        else if (R < s && C >= s)

            q = 1;

        // 3사분면

        else if (R >= s && C < s)

            q = 2;

        // 4사분면

        else if (R >= s && C >= s)

            q = 3;

 

        // 다음 계산을 위해 R, C의 값을 갱신한다.

        R %= s;

        C %= s;

 

        // 1사분면을 기준으로 값을 더한다.

        ans += (s * s) * q;

 

        --N;

    }

 

    printf("%d", ans);

}


  • C# 6.0


using System;

 

namespace Csharp

{

    class Program

    {

        static void Main(string[] args)

        {

            var inputs = Console.ReadLine().Split();

            int N = Convert.ToInt32(inputs[0]);

            int R = Convert.ToInt32(inputs[1]);

            int C = Convert.ToInt32(inputs[2]);

 

            int ans = 0;

            while (N > 0)

            {

                int q = 3;

                int s = (1 << N - 1);

                if (R < s && C < s)

                    q = 0;

                else if (R < s && C >= s)

                    q = 1;

                else if (R >= s && C < s)

                    q = 2;

 

                R %= s;

                C %= s;

 

                ans += (s * s) * q;

                

                --N;

            }

 

            Console.WriteLine(ans);

        }

    }

}


  • Python 3


from sys import stdin

input = stdin.readline

 

N, R, C = map(int, input().split())

ans = 0

while N:

    s = 1 << N - 1

    if R < s and C < s:

        q = 0

    elif R < s and C >= s:

        q = 1

    elif R >= s and C < s:

        q = 2

    else:

        q = 3

    

    R %= s

    C %= s

    ans += (s ** 2) * q

 

    N -= 1

 

print(ans)



'Outdated > Algorithm Solution' 카테고리의 다른 글

[BOJ] 9935번 문자열 폭발  (0) 2020.07.06
[BOJ] 1544번 사이클 단어  (0) 2020.06.29
[BOJ] 1016번 제곱 ㄴㄴ수  (0) 2020.06.22
[BOJ] 1476번 날짜 계산  (0) 2020.06.22
[BOJ] 11066번 파일 합치기  (0) 2020.06.15