Stay Hungry Stay Foolish

SWEA 87

[SWEA] 14692. 통나무 자르기 (Python/D3)

[문제 링크] 👇  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이1 : N 씩 자른다고 할 때 N이 짝수일 땐 Alice가, 홀수이면 Bob이 우승하게 된다.  통나무의 길이가 2 일 때, Alice가 먼저 자르기 때문에 짝수일 땐 Alice가 우승할 수 밖에 없다.따라서 N이 2로 나뉘어 질 때 Alice를 출력하고, 그렇지 않으면 Bob을 출력한다.  SolutionT = int(input())for test_case in range(1, T + 1): N = int(input()) if N % 2 == 0: result = "Alice" else: result ..

SWEA 2024.10.25

[SWEA] 1216. [S/W 문제해결 기본] 3일차 - 회문2 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이회문 길이 계산큰 길이부터 줄여가면서 문자열을 추출하고 회문 여부를 검사해 첫 번째 회문을 찾으면 해당 길이를 반환한다.  행 열 변환 방법 - zip()new_board = [list(i) for i in zip(*board)]  Solutiondef palindrome(board): length, max_len = 0, 0 for i in range(100): for j in range(100): for k in range(100): word_slice = board[i]..

SWEA 2024.10.25

[SWEA] 6692. 다솔이의 월급 상자 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이계산 방법p확률 * x만원 곱한 결과를 모두 더한다. 소수점 이하 여섯 자리까지 출력하는 방법format() 메서드 사용 : format() 메서드는 문자열에서 형식을 지정하는 방법이다.num = 3.14159formatted_num = "{:.2f}".format(num) # 소수점 둘째 자리까지print(formatted_num) # 출력: 3.14  format 연산자 말고도 % 연산자도 가능하다.num = 3.14159formatted_num = "%.2f" % num # 소수점 둘째 자리까지print(formatted_num) ..

SWEA 2024.10.24

[SWEA] 11856. 반반 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이sol.1 (set 이용)set()set은 중복을 허용하지 않는 자료구조이기 때문에, 문자열에 등장하는 서로 다른 문자의 종류를 쉽게 확인할 수 있다.예를 들어, 문자열이 'ABAB'일 때 set()를 이용하면 결과는 {'A', 'B'} 가 된다.set의 길이가 2이면 두 개의 서로 다른 문자가 있었다는 것이므로, "Yes" 를 출력한다.그렇지 않으면 "No"를 출력한다. sol.2 (if문 이용)sorted()sorted()는 파이썬의 내장 함수로 문자열이나 리스트 등을 정렬하는 함수이다.문자열일 경우 사전 순으로 정렬하고, 리스트 형태로 반..

SWEA 2024.10.24

[SWEA] 2805. 농작물 수확하기 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이sol.1중심 계산농장의 중심은 n // 2 로 구한다. 예를 들어, n = 5일 때 중심은 2번째 행이다.각 행에서 수확 범위 계산각 행마다 수확 범위의 시작점은 중심에서 얼마나 떨어져 있는지에 따라 결정된다. 즉, abs(center - i)로 구할 수 있다.끝점은 n − start로 계산하여 그 범위까지 수확할 수 있다.수익 계산수확 가능한 범위의 농작물들을 sum 함수를 이용해 더한 후, 그 값을 누적하여 최종 수익을 계산한다.  sol.2start와 end로 수확할 수 있는 열의 범위를 나타낸다.처음에는 중심열 하나만 수확한다. 즉, ..

SWEA 2024.10.24

[SWEA] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이가로 회문 검사for i in range(8): for j in range(8 - length + 1): row_slice = board[i][j:length + j] if row_slice == row_slice[::-1]: result += 1가로 방향으로 회문을 찾는 루프이다.for i in range(8)글자판의 각 행(i번째 행)을 순차적으로 확인한다.for j in range(8 - length + 1)각 행에서 length 길이의 문자열을 추출할 시작 인덱스 j 를 설정한다. 8 - le..

SWEA 2024.10.22

[SWEA] 10804. 문자열의 거울상 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이단순 구현b ➜ d로 변경d ➜ b로 변경p ➜ q로 변경q ➜ p로 변경변경한 후 문자열을 뒤집는다.  ※ 문자열을 변경할 수 있는 replace() 메서드도 있다. replace()를 사용해도 되지만, 코드가 번잡해지니 패스한다.  Solutiontest_case = int(input())for tc in range(1, test_case + 1): word = input() result = "" for i in word: if i == "b": result += "d" elif ..

SWEA 2024.10.22

[SWEA] 4751. 다솔이의 다이아몬드 장식 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이💡 핵심 : 규칙을 찾자 입력이 SWEA 라고 했을 때, 다음과 같은 규칙이 있다. 아래의 규칙은 모든 문자열에 적용된다. 첫 번째 줄은 ..#.두 번째 줄은 .# (네 번째 줄과 동일)세 번째 줄은 #. (다섯 번째 줄과 동일) 규칙을 이용해 완성하려면, 다음과 같은 과정이 필요하다.print(line1 * length + '.')위 구문은 문자열을 반복하고 결합하는 연산을 수행하는 구문이다.line1 * lengthline1 문자열을 length만큼 반복한다. line1은 '..#.' 이고 length가 4이므로, line1 * leng..

SWEA 2024.10.22

[SWEA] 1213. [S/W 문제해결 기본] 3일차 - String (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이sol.1 슬라이싱으로 특정 문자열 찾기if sentence[i : i + len(word)] == word: result += 1sentence의 i번째 위치부터 i + len(word) 길이만큼 잘라낸 부분이 word와 같은지 확인합니다. 이 부분이 word와 같다면, 해당 위치에서 word가 발견된 것입니다. 루프 종료 조건if i == len(sentence) - len(word) + 1: break i가 sentence에서 더 이상 word를 탐색할 수 없는 위치에 도달하면 루프를 종료합니다. 이 조건은 문자열의 끝에서 더 이상..

SWEA 2024.10.22

[SWEA] 3456. 직사각형 길이 찾기 (Python/D3)

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  풀이첫 번째 길이와 두 번째 길이가 같으면 세 번째 길이를 반환한다.두 번째 길이와 세 번째 길이가 같으면 첫 번째 길이를 반환한다.첫 번째 길이와 세 번째 길이가 같으면 두 번째 길이를 반환한다.  Solutiontest_case = int(input())for tc in range(1, test_case + 1): square = list(map(int, input().split())) result = 0 if square[0] == square[1]: result = square[2] elif square[..

SWEA 2024.10.22

[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

[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