SW역량테스트

    [python] SWEA - 4789. 성공적인 공연 기획

    [python] SWEA - 4789. 성공적인 공연 기획

    🤔문제 해결 D3 | 시뮬레이션? 💨 110011 💨 인덱스 만큼의 사람이 박수를 치고 있으면 💨 그 인덱스의 값 만큼의 사람이 추가로 박수를 친다. 💨 박수치고 있는 사람의 수가 인덱스보다 작다면 💨 인덱스와 박수치고 있는 사람의 수가 같도록 사람을 고용한다. 💻소스 코드 for tc in range(int(input())): sequence = input() people = 0 employment = 0 for need_people, people_cnt in enumerate(sequence): people_cnt = int(people_cnt) if need_people

    [python] SWEA - 5688. 세제곱근을 찾아라

    [python] SWEA - 5688. 세제곱근을 찾아라

    🤔문제 해결 D3 | 소수 오차 컨트롤? 💨 pow(64, 1/3) 을 하거나 64 ** (1/3) 을 하면 정확히 4가 나오지 않고, 3.9999999996 이렇게 나온다. 누가봐도 4지만 컴퓨터는 실수를 이렇게 인식한다고 한다. 나의 경우 소수 두번째 자리에서 반올림해서 정수가 되면 그 수는 세제곱근이라는 결론을 내렸다. ( 사실 소수 10번재 자리에서 했는데 절반이 틀렸다 ) 💻소스 코드 for tc in range(int(input())): print(f'#{tc+1}', end=' ') N = int(input()) value = round(pow(N, 1/3),2) if int(value) == value: print(int(value)) else: print(-1) 📕문제 확인 출처: SW ..

    [python] SWEA - 9700. USB 꽂기의 미스터리

    [python] SWEA - 9700. USB 꽂기의 미스터리

    🤔문제 해결 D3 💨 문제가 미스테리다. 코딩 실력이라기 보단 그냥 확률 문제. 💨 1번 뒤집어서 제대로 꽂는 경우 처음에 뒤집은 상태로 꽂아야 한다. 1-p 1번 뒤집으면 이제 제대로 된 상태이고, 여기서 제대로 꽂는다. q -> ( 1-p ) * q 💨 2번 뒤집어서 제대로 꽂는 경우 처음에 올바른 면으로 꽂는다. 하지만 제대로 못 꽂음 p * ( 1-q ) 1번 뒤집으면 뒤집은 상태 pass ( 얘는 저절로 된다 ) 2번 뒤집으면 원래상태 pass, 올바르게 꽂자 q -> p * ( 1-q ) * q 💻소스 코드 for tc in range(int(input())): p, q = map(float, input().split()) # p: 올바론 면으로 USB를 꽂을 확률, q: 정상적으로 USB가 ..

    [python] SWEA - 7675. 통역사 성경이

    [python] SWEA - 7675. 통역사 성경이

    🤔문제 해결 D3 | 문자열 💨 문장으로 구분하고, 단어로 구분하기 💨 이름이 되는 조건은 첫번째 글자가 대문자이고, 나머지는 소문자이다. 첫번째 글자가 하나일 경우는 이름이다. ( 숫자가 섞이면 x, 첫번째는 무조건 소문자, 뒤에 점이든 느낌표든 물음표든 필요없다 ) 위의 두가지 경우가 끝이다. 문제를 조금 헷갈리게.... 💻소스 코드 for tc in range(int(input())): N = int(input()) answer = list() sentence = input() # 문장 구분하기 start = 0 for i in range(len(sentence)): if sentence[i] in ('!', '?', '.'): # 단어로 구분하기 cnt = 0 for word in sentence..

    [python] SWEA - 10580. 전봇대

    [python] SWEA - 10580. 전봇대

    🤔문제 해결 lv3 💨 많이 고민했는데 N의 범위가 그렇게 크지 않아서 단순하게 실행했다. 💨 전선을 하나 골라서 나머지 전선들과 비교해준다. 💨 전선이 만난다면 +1 을 해주고 모든 전선을 탐색한다. 💨 A 전선이 B전선을 만나는 경우와 B전선이 A전선을 만나는 경우가 중복되므로 결과에서 나누기 2를 해준다. 💻소스 코드 for tc in range(int(input())): N = int(input()) telephone_pole = [tuple(map(int, input().split())) for _ in range(N)] cnt = 0 for i in range(N): for j in range(N): if i == j: continue if telephone_pole[i][0] < teleph..

    [python] SWEA - 4047. 영준이의 카드 카운팅

    [python] SWEA - 4047. 영준이의 카드 카운팅

    🤔문제 해결 D3 | 문자열 💨 카드의 종류를 딕셔너리로 만들고 값을 리스트로 한다. 💨 해당 카드를 보유하고 있으면 아웃 💨 해당 카드가 없으면 추가한다. 💨 마지막에 필요한 카드의 수만큼 값을 출력한다. 💻소스 코드 for tc in range(int(input())): cards = input() my_card = { 'S': [], 'D': [], 'H': [], 'C': [], } print(f'#{tc + 1}', end=' ') for i in range(0, len(cards), 3): # 3씩 건너 뛴다. c = cards[i] n = cards[i + 1:i + 3] if n not in my_card[c]: # 해당 카드를 가지고 있지 않은 경우 -> 카드 추가 my_card[c].a..