2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법(C,C++,Python,JAVA)

3.5 토끼와 거북이의 미로 탈출

원당컴1 2024. 6. 20. 09:39

목차 : https://wondangcom.tistory.com/2797

 

 

토끼와 거북이의 미로 탈출

미로 속에서 토끼와 거북이가 만났습니다. 

미로는 길이 좁았고 어떤 길이 나가는 출구인지 알수가 없었다.

미로의 문에는 AND,OR,NOT의 글자가 써 있었고 거기에는 각각마다 이렇게 적혀 있었다.

AND : 토끼와 거북이가 같이 문을 열어야 문이 열립니다.

OR : 토끼나 거북이 둘 중 하나라도 문을 열 수 있습니다.

NOT : 이 문은 열 수 없습니다.

이 글을 읽고 토끼와 거북이는 논리연산자를 적절히 사용하여 미로를 탈출 했습니다.

 

C언어

#include <stdio.h>

int main() {
    int rabbit = 1; // 토끼의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)
    int turtle = 1; // 거북이의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)

    // AND 연산자: 둘 다 참일 때만 문을 열 수 있음
    if (rabbit && turtle) {
        printf("토끼와 거북이가 함께 문을 열어 미로를 탈출했습니다.\n");
    } else {
        printf("토끼와 거북이는 함께 문을 열지 못해 미로에 갇혔습니다.\n");
    }

    // OR 연산자: 둘 중 하나라도 참이면 문을 열 수 있음
    if (rabbit || turtle) {
        printf("토끼나 거북이 중 한 명이 문을 열어 미로를 탈출했습니다.\n");
    } else {
        printf("토끼와 거북이는 모두 문을 열지 못해 미로에 갇혔습니다.\n");
    }

    // NOT 연산자: 거꾸로 가보기
    if (!rabbit) {
        printf("토끼는 다른 길로 돌아가 미로를 탈출했습니다.\n");
    } else {
        printf("토끼는 막힌 길을 선택해 미로에 갇혔습니다.\n");
    }

    return 0;
}

C언어에서 AND(논리곱) 연산자는 && 입니다. &&는 둘 모두가 참일때 참이 됩니다.

OR(논리합) 연산자는 || 입니다. ||는 둘 중 하나만 참이어도 참이 됩니다.

NOT 연산자는 ! 입니다. !는 참이면 거짓,거짓이면 참이 되는 연산자입니다.

 

C++

#include <iostream>

int main() {
    int rabbit = 1; // 토끼의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)
    int turtle = 1; // 거북이의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)

    // AND 연산자: 둘 다 참일 때만 문을 열 수 있음
    if (rabbit && turtle) {
        std::cout << "토끼와 거북이가 함께 문을 열어 미로를 탈출했습니다." << std::endl;
    } else {
        std::cout << "토끼와 거북이는 함께 문을 열지 못해 미로에 갇혔습니다." << std::endl;
    }

    // OR 연산자: 둘 중 하나라도 참이면 문을 열 수 있음
    if (rabbit || turtle) {
        std::cout << "토끼나 거북이 중 한 명이 문을 열어 미로를 탈출했습니다." << std::endl;
    } else {
        std::cout << "토끼와 거북이는 모두 문을 열지 못해 미로에 갇혔습니다." << std::endl;
    }

    // NOT 연산자: 거꾸로 가보기
    if (!rabbit) {
        std::cout << "토끼는 다른 길로 돌아가 미로를 탈출했습니다." << std::endl;
    } else {
        std::cout << "토끼는 막힌 길을 선택해 미로에 갇혔습니다." << std::endl;
    }

    return 0;
}

논리연산자는 C언어와 동일합니다.

 

JAVA

public class MazeEscape {
    public static void main(String[] args) {
        int rabbit = 1; // 토끼의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)
        int turtle = 1; // 거북이의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)

        // AND 연산자: 둘 다 참일 때만 문을 열 수 있음
        if (rabbit == 1 && turtle == 1) {
            System.out.println("토끼와 거북이가 함께 문을 열어 미로를 탈출했습니다.");
        } else {
            System.out.println("토끼와 거북이는 함께 문을 열지 못해 미로에 갇혔습니다.");
        }

        // OR 연산자: 둘 중 하나라도 참이면 문을 열 수 있음
        if (rabbit == 1 || turtle == 1) {
            System.out.println("토끼나 거북이 중 한 명이 문을 열어 미로를 탈출했습니다.");
        } else {
            System.out.println("토끼와 거북이는 모두 문을 열지 못해 미로에 갇혔습니다.");
        }

        // NOT 연산자: 거꾸로 가보기
        if (rabbit != 1) {
            System.out.println("토끼는 다른 길로 돌아가 미로를 탈출했습니다.");
        } else {
            System.out.println("토끼는 막힌 길을 선택해 미로에 갇혔습니다.");
        }
    }
}

논리연산자는 C언어와 동일합니다.

Python

def main():
    rabbit = 1  # 토끼의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)
    turtle = 1  # 거북이의 상태 (1: 문을 열 수 있음, 0: 문을 열 수 없음)

    # AND 연산자: 둘 다 참일 때만 문을 열 수 있음
    if rabbit and turtle:
        print("토끼와 거북이가 함께 문을 열어 미로를 탈출했습니다.")
    else:
        print("토끼와 거북이는 함께 문을 열지 못해 미로에 갇혔습니다.")

    # OR 연산자: 둘 중 하나라도 참이면 문을 열 수 있음
    if rabbit or turtle:
        print("토끼나 거북이 중 한 명이 문을 열어 미로를 탈출했습니다.")
    else:
        print("토끼와 거북이는 모두 문을 열지 못해 미로에 갇혔습니다.")

    # NOT 연산자: 거꾸로 가보기
    if not rabbit:
        print("토끼는 다른 길로 돌아가 미로를 탈출했습니다.")
    else:
        print("토끼는 막힌 길을 선택해 미로에 갇혔습니다.")

if __name__ == "__main__":
    main()

Python 에서 AND 연산자는 and, OR 연산자는 or, NOT 연산자는 not 을 사용하며 의미는 동일합니다.

 

논리연산자 요약

  • AND 연산자(논리곱) : &&(c,c++,java) 또는 and(Python) 을 사용하며 둘 다 참일때 참이며 둘 중 하나라도 거짓이라면 거짓이 되는 연산자
  • OR 연산자 (논리합):  ||(c,c++,java) 또는 or(Python)을 사용하며 둘 중 하나라도 참이면 참이며 둘 모두 거짓일 때 거짓이 되는 연산자.
  • NOT 연산자 : !(c,c++,java) 또는 not(Python)을 사용하며 참인 값이 들어오면 거짓, 거짓인 값이 들어오면 참으로 만드는 연산자.

 

인천 검단 원당컴퓨터 학원(T 032-565-5497)

#정보올림피아드

#검단신도시코딩

#원당동코딩

#마전동코딩

#왕길동코딩

#당하동코딩

#아라동코딩

#풍무동코딩

#불로동코딩

#검단동코딩

#검암동코딩

 
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기