Stay Hungry Stay Foolish

전체 글 423

[TIL] 2024년 10월 21일

파이썬fractions 모듈 fractions 모듈은 유리수(분수)를 다루기 위한 모듈로, Fraction 클래스를 사용해 분자와 분모로 구성된 정확한 유리수를 생성하고 계산할 수 있다. 소수점의 부정확성을 피하고, 분수 간의 사칙연산 및 기약 분수 표현을 지원한다.  사용 방법from fractions import Fractionx = Fraction(1, 3) # 1/3 생성y = Fraction(2, 3) # 2/3 생성print(x + y) # 출력: 1첫 번째 인자에는 분자, 두 번째 인자에는 분모를 넣어준다.내부에서 분수를 알아서 계산하고 분수 형태로 반환한다. while문에서의 dequewhile deque:while deque: 는 덱이 비어있지 않은 동안 반복문을 실행하겠..

TIL 2024.10.21

[SWEA] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이💡핵심 : 자료 구조 - 힙 이용 파이썬에서의 힙 - deque deque(덱)는 파이썬의 collections 모듈에서 제공하는 양방향 큐로, 리스트와 유사하지만 양쪽 끝에서 빠른 삽입과 삭제가 가능하다. 리스트와 비교해 시간 복잡도가 더 효율적이기 때문에, 양쪽에서 데이터를 자주 추가하거나 제거하는 경우 deque를 사용하는 것이 좋다.[deque에 대한 자세한 설명] 👉 https://dev-cloud.tistory.com/322   1. 큐를 생성하고 입력 받은 8개의 숫자 리스트를 담는다.data_deque = deque(data) ..

SWEA 2024.10.21

[파이썬] 자료 구조 - deque

deque 이란?deque(덱)는 파이썬의 collections 모듈에서 제공하는 양방향 큐로, 리스트와 유사하지만 양쪽 끝에서 빠른 삽입과 삭제가 가능하다. 리스트와 비교해 시간 복잡도가 더 효율적이기 때문에, 양쪽에서 데이터를 자주 추가하거나 제거하는 경우 deque를 사용하는 것이 좋다. deque 사용법먼저 collections 모듈에서 deque를 import한다.from collections import deque  1️⃣ 1. deque 생성dq = deque([1, 2, 3, 4, 5]) print(dq) 출력 결과deque([1, 2, 3, 4, 5])  2️⃣ 2. 요소 추가오른쪽 끝에 요소 추가: append()왼쪽 끝에 요소 추가: appendleft()dq.append(6) ..

알고리즘 2024.10.21

[파이썬] 리스트 컴프리헨션

리스트 컴프리헨션 (List Comprehension) 파이썬에서 간결하고 효율적으로 리스트를 생성하는 구문이다. 기존 리스트의 값을 조건에 따라 변형하거나 필터링하여 새로운 리스트를 만들 때 매우 유용하다. 리스트를 생성하는 for 루프를 한 줄로 작성할 수 있어, 코드가 짧고 가독성이 높아진다.  기본 구문[expression for item in iterable if condition] expression: 리스트에 포함될 값이나 변형된 값item: iterable의 각 요소를 나타냄iterable: 반복 가능한 객체 (예: 리스트, 문자열, 튜플 등)condition (선택적): 각 요소에 대해 적용할 조건으로, 조건이 참일 때만 요소가 포함됨 1️⃣ 예제 1: 기본 리스트 컴프리헨션squares..

알고리즘 2024.10.21

[SWEA] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이테이블 위는 N극, 아래는 S극이고 입력에서의 1은 N극, 2는 S극이다. N극 쪽에는 1이 있으면 안 되고, S극 쪽에는 2가 있으면 안 된다.   위 그림과 같이 1 다음에 2 가 있으면 교착상태라는 것이다. 한 줄씩 확인하면서 1과 2가 같이 나타나는 개수를 세어주면 된다. 현재 bit를 1이라고 정하고 시작한다.for i in range(100): bit = 1 이제 한 줄씩 확인한다.  for j in range(100): if table[j][i] == 1: bit = 2 el..

SWEA 2024.10.21

[SWEA] 3314. 보충학습과 평균 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이40점 미만이면 40점을 누적하고, 40점 이상이면 해당 점수를 누적한다.누적한 점수를 5로 나누고 int형으로 변환한다.  Solutiontest_case = int(input())for tc in range(1, test_case + 1): score = list(map(int, input().split())) result = 0 for i in score: if i

SWEA 2024.10.21

[SWEA] 5601. [Professional] 쥬스 나누기 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이핵심은 N분의 1을 해야 한다는 것이다. Solutiontest_case = int(input())for tc in range(1, test_case + 1): n = int(input()) print("#%d" %tc, end=' ') for i in range(n): print("%d/%d" %(1, n), end=' ') print()  👩‍💻 회고테스트 케이스 보고 매우 간단한 문제였다는 걸 알아챘지만,, 몰랐으면 헛수고 할 뻔 했다.  글만 보고 이런 문제라는 것을 이해하는 건 참 어려운 일인 것..

SWEA 2024.10.21

[SWEA] 13229. 일요일 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이1. 날짜를 리스트에 모두 저장한다.days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]  2. 날짜 리스트의 길이만큼 for문을 돌린다.입력받은 것과 날짜 리스트에 들어있는 문자열과 같으면7에서 현재 날짜를 빼준다. for i in range(len(days)): if days[i] == day: result = 7 - i break  Solutiontest_case = int(input())for tc in range(1, test_ca..

SWEA 2024.10.21

[자바 중급] 09. 예외 처리 1

예외 처리가 필요한 이유외부 서버와 통신할 때 다음과 같은 다양한 문제들이 발생할 수 있다.네트워크 오류 등으로 인해 외부 서버와 연결에 실패데이터 전송에 문제가 발생 자바의 예외 처리 메커니즘 제공자바는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황, 즉 예외(Exception)를 처리하기 위한 메커니즘을 제공한다. 이는 프로그램의 안정성과 신뢰성을 높이는 데 중요한 역할을 한다.  자바의 예외 처리는 다음 키워드를 사용한다. 그리고 예외를 다루기 위한 예외 처리용 객체들을 제공한다. trycatchfinallythrowthrows 예외 계층 구조  Exception : 체크 예외애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외이다.Exception과 그 하위 예외는 모두 컴파일러가 체..

[TIL] 2024년 10월 20일

파이썬합계 함수 sum() 리스트, 튜플, 또는 다른 iterable의 모든 요소를 더한 합계를 반환하는 함수이다. 주로 숫자들이 들어 있는 리스트나 튜플의 합계를 구할 때 사용된다. 기본 사용법numbers = [1, 2, 3, 4, 5]total = sum(numbers)print(total) # 출력: 15sum(numbers)는 리스트 numbers에 있는 요소들을 모두 더해 합계인 15를 반환 구문sum(iterable, start=0)iterable: 리스트, 튜플 등의 반복 가능한 객체start: 합계를 계산할 때 기본값으로 더해질 숫자이다. 기본값은 0이며, 지정하지 않으면 합계에 영향을 주지 않는다. start 인자를 사용하는 예시numbers = [1, 2, 3]total = sum(..

TIL 2024.10.20

[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