Stay Hungry Stay Foolish

SWEA 87

[SWEA] 1289. 원재의 메모리 복구하기 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이입력이 100이라고 할 때, i = 1i = 0i = 0현재 bit = 0bit와 i가 다르므로 bit를 1로 변경현재 bit = 1bit와 i가 다르므로 bit를 0으로 변경현재 bit = 0bit와 i가 같으므로 그대로현재 bit = 0  Solutiontest_case = int(input())for tc in range(1, test_case + 1): memory = list(map(int, input())) result = 0 bit = 0 for i in memory: if bit != i: ..

SWEA 2024.10.20

[SWEA] 10570. 제곱 팰린드롬 수 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이정수 뒤집는 방법reversed_num = int(str(num)[::-1])정수를 str 형으로 변환하고 슬라이싱 한다. 슬라이싱 하는 방법은 [시작:끝:조건] 을 명시하면 된다.조건에 -1이 들어가면 맨 뒤에서부터 맨 앞 글자까지 거꾸로 문자열을 슬라이싱 한다는 뜻이다.뒤집은 문자열을 다시 int형으로 변환한다. 제곱근 구하는 방법import mathsqrt_num = math.sqrt(num)math 라이브러리에 sqrt 함수가 존재한다. 이는 제곱근 함수이다.float형으로 반환한다.굳이 함수를 쓰지 않아도 제곱을 통해 제곱근을 구해도 ..

SWEA 2024.10.20

[SWEA] 11688. Calkin-Wilf tree 1 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com Calkin-Wilf Tree Calkin-Wilf Tree는 모든 양의 유리수를 중복 없이 포함하는 이진 트리이다. 트리의 각 노드는 부모 노드의 분수 ab\frac{a}{b}ba​를 기준으로 왼쪽 자식은 aa+b\frac{a}{a+b}a+ba​, 오른쪽 자식은 a+bb\frac{a+b}{b}ba+b​ 형태로 생성된다. 이를 통해 유리수를 순서대로 탐색할 수 있다. 풀이입력이 LRL 이라고 하자. 그럼 다음 그림과 같다. 따라서 문자가 L이면 Right 값에 L 값을 더해 누적하고, R이면 Left 값에 R 값을 더해 누적시킨다.마지막으로 Lef..

SWEA 2024.10.20

[SWEA] 4406. 모음이 보이지 않는 사람 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이모음을 리스트에 따로 저장vowel = ["a", "e", "i", "o", "u"] for문에서 문자를 하나씩 꺼내어 모음 리스트에 해당 문자가 없으면 결과에 담는다. if i not in vowel:   ※ 앞 뒤 개행문자 제거 - strip()word = input().strip() 앞 쪽만 제거하고 싶으면 - lstrip() : left strip이라고 생각하면 된다.뒤 쪽만 제거하고 싶으면 - rstrip() : righr strip이라고 생각하면 된다. Solutiontest_case = int(input())for tc in ran..

SWEA 2024.10.20

[SWEA] 12221. 구구단2 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이두 정수 중 하나라도 10 이상의 수가 존재하면 -1을 출력한다.그렇지 않으면 두 수를 곱한다.  Solutiontest_case = int(input())for tc in range(1, test_case + 1): a, b = map(int, input().split()) result = 0 if a >= 10 or b >= 10: result = -1 else: result = a * b print("#%d %d" % (tc, result))

SWEA 2024.10.20

[SWEA] 10505. 소득불균형 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이합계를 사람 수 N으로 나눈 뒤 평균을 구한다.소득이 담긴 리스트에서 하나씩 꺼내어 평균 이하인지 확인한다.   합계 함수 sum() 이용리스트, 튜플, 또는 다른 iterable의 모든 요소를 더한 합계를 반환하는 함수이다. 주로 숫자들이 들어 있는 리스트나 튜플의 합계를 구할 때 사용된다.  기본 사용법numbers = [1, 2, 3, 4, 5]total = sum(numbers)print(total) # 출력: 15sum(numbers)는 리스트 numbers에 있는 요소들을 모두 더해 합계인 15를 반환 구문sum(iterable,..

SWEA 2024.10.20

[SWEA] 12368. 24시간 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이A 시간과 B 시간을 더한다. 더한 시간이 24시간이 넘어가면 24에서 빼준다. (A와 B의 최대는 23이므로 더해서 빼봤자 24이기 때문에 단순히 24만 뺀다.)  Solutiontest_case = int(input())for tc in range(1, test_case + 1): a, b = map(int, input().split()) result = 0 result = a + b if result >= 24: #24시간 이상이면 result -= 24 print("#%d %d" %(tc, resu..

SWEA 2024.10.20

[SWEA] 3431. 준환이의 운동관리 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이if - elif - else 문 이용 U분을 초과했으면 -1을 결과에 저장한다.U분을 초과하지 않고, L분 미만이면 L분에서 X분만큼 뺀다. 그럼 필요한 운동시간이 나온다.U분을 초과하지 않았고, L분 미만도 아니면, 즉 L분 이상 U분 이하라면 0을 결과에 저장한다.  Solutiontest_case = int(input())for tc in range(1, test_case + 1): l, u, x = map(int, input().split()) result = 0 if u

SWEA 2024.10.20

[SWEA] 1288. 새로운 불면증 치료법 (Python/D2)

[문제 링크] 👇  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이0 ~ 9 까지 수가 있는지 확인하는 리스트를 생성한다. 모두 -1 로 초기화한다.N의 배수를 위해 cnt 변수를 생성하고 1로 초기화한다.N의 배수를 담을 변수도 생성한다. While문에서 양 세기를 시작한다.N의 배수를 계산한다. map() 을 사용하여 정수를 분리하고 리스트에 담는다.리스트에서 정수를 하나씩 꺼내서, -1 로 초기화된 리스트에 그 정수가 없으면 리스트에 담는다.다 확인했으면 이제 -1 로 초기화된 리스트에서 0 ~ 9까지 모든 수가 있는지 체크한다.-1이 아직도 있으면 cnt 변수를 하나 증가시고, 없으면 while문을 ..

SWEA 2024.10.19

[SWEA] 1959. 두 개의 숫자열 (Python/D2)

[문제 링크] 👉  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com설명N 개의 숫자로 구성된 숫자열 Ai (i=1~N) 와 M 개의 숫자로 구성된 숫자열 Bj (j=1~M) 가 있다. 아래는 N =3 인 Ai 와 M = 5 인 Bj 의 예이다.Ai 나 Bj 를 자유롭게 움직여서 숫자들이 서로 마주보는 위치를 변경할 수 있다. 단, 더 긴 쪽의 양끝을 벗어나서는 안 된다.서로 마주보는 숫자들을 곱한 뒤 모두 더할 때 최댓값을 구하라. 위 예제의 정답은 아래와 같이 30 이 된다.[제약 사항]N 과 M은 3 이상 20 이하이다.  풀이리스트 중 길이가 짧은 것과 긴 것을 구분min_list = min(aList, b..

SWEA 2024.10.18

[SWEA] 1961. 숫자 배열 회전 (Python/D2)

[문제 링크] 👉  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 설명N x N 행렬이 주어질 때,시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라. [제약 사항]N은 3 이상 7 이하이다.  풀이1. 이중 리스트로 입력 받기 num_list = [] for _ in range(n): num_list.append(list(map(int, input().split()))) 리스트 컴프리헨션을 사용해서 입력 받는 방법num_list = [list(map(int, input().split())) for _ in range(n)]  2. 테스트 케이스 번호 출력print("#%d" %..

SWEA 2024.10.18

[SWEA] 1976. 시각 덧셈 (Python/D2)

[문제 링크] 👉  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 설명시 분으로 이루어진 시각을 2개 입력 받아, 더한 값을 시 분으로 출력하는 프로그램을 작성하라.(시각은 12시간제로 표시한다. 즉, 시가 가질 수 있는 값은 1시부터 12시이다.)  [제약 사항]시는 1 이상 12 이하의 정수이다. 분은 0 이상 59 이하의 정수이다.  풀이핵심은 12시간제로 표시하는 것이다. 주의할 점은 분이 60분을 넘기면 시도 같이 증가를 해줘야 한다.  첫 번째 시각의 시, 두 번째 시각의 시를 더하고 hour에 저장한다.첫 번째 시각의 분, 두 번째 시각의 분을 더하고 minute에 저장한다. minute이 60 이..

SWEA 2024.10.16