Algorithm Problem

    [python] SWEA - 4371. 항구에 들어오는 배

    [python] SWEA - 4371. 항구에 들어오는 배

    🤔문제 해결 D3 💨 두번째 즐거운 날 부터 1일과의 차이를 계산한다 💨 그 규칙만큼 마지막 즐거운 날까지의 배를 배열에 담는다. 💨 다음 즐거운 날이 이미 배열에 없는 경우만 차이를 계산하여 반복한다. 💨 1, 7, 10, 13, 19 💨 두번째 즐거운 날(7) 과 1일 차이 = 6 💨 배열 = [7, 13, 19] 💨 세번째 즐거운날 10 은 배열에 없으므로 차이 계산 💨 세번재 즐거운 날(10) 과 1일 차이 = 9 💨 배열 = [7, 10, 13, 19] 💨 네번째, 다섯번째 즐거운 날 (13, 19) 는 이미 배열에 있으므로 pass 💨 총 계산을 두 번 했으므로 배는 2개 💻소스 코드 for tc in range(int(input())): N = int(input()) happy_days = ..

    [python] SWEA - 4579. 세상의 모든 팰린드롬 2

    [python] SWEA - 4579. 세상의 모든 팰린드롬 2

    🤔문제 해결 D3 | 문자열(팰린드롬) 💨 주어진 문자열을 뒤집어서 원래의 문자와 하나씩 비교해준다. 💨 계속 같다면 넘어가고 💨 다르다면 그 때의 문자가 '*' 인지 확인 - '*' 이 맞다면 이 문자는 무조건 팰린드롬이다. 💨 하지만 '*' 이 아니라면 이 문자는 팰린드롬이 아니다. 💻소스 코드 for tc in range(int(input())): answer = 'Not exist' word = input() reversed_word = word[::-1] for i in range(len(word)): if word[i] == reversed_word[i]: continue if word[i] == '*' or reversed_word[i] == '*': answer = 'Exist' break..

    [python] SWEA - 4698. 테네스의 특별한 소수

    [python] SWEA - 4698. 테네스의 특별한 소수

    🤔문제 해결 D3 | 소수 💨 에라토스테네스의 체를 이용해서 미리 소수들을 구한다. 💨 D 가 포함되면서 소수인 수를 찾는다. 💻소스 코드 # 테스트케이스마다 소수를 찾으면 시간초과가 발생하기 때문에 에라토스테네스의 체를 이용해 미리 소수들을 구해놓는다. N = 10**6 def set_prime(): for i in range(N+1): if prime[i] == 1: for j in range(i*2, N+1, i): prime[j] = 0 prime = [1]*(N + 1) prime[0], prime[1] = 0, 0 set_prime() for tc in range(int(input())): D, A, B = map(int, input().split()) answer = [] for i in r..

    [python] SWEA - 4751. 다솔이의 다이아몬드 장식

    [python] SWEA - 4751. 다솔이의 다이아몬드 장식

    🤔문제 해결 D3 | ? 💨 규칙을 찾는 문제 💨 첫줄과 마지막줄은 ..#. 과 끝에 . 💨 두번째줄과 네번째줄은 .#.# 과 끝에 . 💨 가운데 문자가 들어가는줄은 #. + 문자하나 + . 과 마지막에 # 💻소스 코드 for tc in range(int(input())): word = input() a = '..#.' b = '.#.#' ab_last = '.' c1 = '#.' c2 = '.' c_last = '#' N = len(word) answer = ['']*5 answer[0] += a*N + ab_last answer[1] += b*N + ab_last for w in word: answer[2] += c1 + w + c2 answer[2] += c_last answer[3] += b*N ..

    [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 ..