inflearn logo
강의

Course

Instructor

Introduction to Python Algorithm Problem Solving (Coding Test Preparation)

코딩테스트

88

connor10

2 asked

0

문제 1. 현재 N개의 숫자 카드를 가지고 있고, 각 숫자카드마다 정수가 하나씩 적혀있다. 정수 M개가 주어졌을때,이수가적혀있는숫자카드를현재가지고있는지아닌지를구하는프로그램을작성하여라. 입출력 및조건 • 입력의첫째줄에는현재가지고있는숫자카드의개수N이주어진다. (1≤N≤500,000) • 입력의둘째줄에는숫자카드에적혀있는정수들이공백한칸으로구분되어주어진다. (수의범위는 −10,000,000 부터 10,000,000 사이의 중복되지 않는 정수) • 입력의셋째줄에는M이주어진다. (1≤M≤500,000) • 입력의넷째줄에는현재가지고있는숫자카드인지아닌지를구해야할M개의정수가공백한칸으로 구분되어주어진다. (수의범위는−10,000,000 부터 10,000,000 사이의 중복되지 않는 정수) • 출력의첫번째줄에는주어진M개의수에대해서,각수가적힌카드를현재가지고있으면1,아니면 0을 공백한칸으로구분하여출력한다.

image

 

CODE HERE 부분의 코드를 짜야하는데 도와주세요


import time import utils def solution(test_case): # time check start_time = time.time() ##################### CODE HERE ##################### ##################################################### # end time elapsed_time = time.time() - start_time print("Elapsed time: {:.8f} seconds".format(elapsed_time)) return result ###################### DO NOT TOUCH BELOW ###################### if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description = 'Argument parser') parser.add_argument('--input', '-i', default = './input', help = 'Input file path') parser.add_argument('--output', '-o', default = './output', help = 'Output file path') args = parser.parse_args() utils.output_checker(args.output) test_cases = utils.read_input(args.input) for test_case in test_cases: result = solution(test_case) utils.write_ouput(args.output, result) utils.compare_files(args.output)

 

python 코딩-테스트

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

connor10님께서 작성하신 문제를 해결하기 위해 Python 코드 예제를 제공드리겠습니다. 이 문제는 주어진 숫자 카드의 집합에서 특정 숫자가 존재하는지를 확인하는 문제입니다. 시간 복잡도를 고려하여 효율적인 탐색 방법을 사용해야 합니다.

해당 문제를 효율적으로 해결하기 위해 집합(set)을 활용할 수 있습니다. 집합은 빠른 검색이 가능하다는 장점이 있습니다. 아래는 구현 코드 예시입니다:

import time
import utils

def solution(test_case):
    # time check
    start_time = time.time()

    ##################### CODE HERE #####################
    n, cards, m, query_numbers = test_case
    card_set = set(cards)

    result = []
    for number in query_numbers:
        if number in card_set:
            result.append(1)
        else:
            result.append(0)
    #####################################################

    # end time
    elapsed_time = time.time() - start_time
    print("Elapsed time: {:.8f} seconds".format(elapsed_time))

    return result

###################### DO NOT TOUCH BELOW ######################
if __name__ == '__main__':

    import argparse
    parser = argparse.ArgumentParser(description='Argument parser')
    parser.add_argument('--input', '-i', default='./input', help='Input file path')
    parser.add_argument('--output', '-o', default='./output', help='Output file path')
    args = parser.parse_args()

    utils.output_checker(args.output)
    test_cases = utils.read_input(args.input)

    for test_case in test_cases:
        result = solution(test_case)
        utils.write_output(args.output, result)

    utils.compare_files(args.output)

이 코드는 다음과 같은 방식으로 동작합니다:
1. 숫자 카드로 주어진 목록을 집합으로 변환하여 탐색 속도를 높입니다.
2. 쿼리로 주어진 숫자가 카드 집합에 있는지를 확인하여 결과 리스트에 1 또는 0을 추가합니다.

이와 같이 해결하면 문제의 조건 안에서 주어진 입력에 대해 효율적으로 해결할 수 있습니다. 도움이 되셨기를 바랍니다!

Example of Input and Output for Problem 1

0

connor10

오류가 납니다..

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

0

76

2

스택에서 ')'을 만나는 경우

0

77

3

문제가 어디있나요?

0

63

2

변수 or 함수명

0

60

1

침몰하는 타이타닉 문제 질문입니다

0

53

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

108

1

아나그램 비교 코드

0

115

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

159

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

162

2

동적계획법은 사용하는 문제

0

124

2

제 코드 좀 봐주세요

0

147

1

예외가 존재할 가능성?

0

96

1

3번이 안풀립니다

0

92

0

5번 틀림

0

112

0

오류원인?

0

97

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

65

1

DFS 순서 질문드립니다.

0

120

2

left, right를 사용한 풀이법에 대한 질문입니다

0

88

1

섹션 9 Dynamic Programming (동적 계획법) 최대부분증가수열

0

113

2