Stay Hungry Stay Foolish

전체 글 423

[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

[TIL] 2024년 10월 24일

파이썬set() 중복을 허용하지 않는 변경 가능한 데이터 구조로, 수학에서의 집합과 유사한 개념을 제공한다. 순서가 없고, 각 요소는 고유해야 하며, 요소 간의 빠른 검색, 추가, 삭제를 지원한다. 예시s = "ABAB"s_set = set(s)print(s_set) 출력 결과{'A', 'B'}중복된 문자가 제거 되고 하나씩만 출력된 것을 볼 수 있다. dict()파이썬의 **딕셔너리(dictionary)**는 키-값 쌍으로 데이터를 저장하는 변경 가능한(mutable) 자료 구조이다. 딕셔너리는 해시 테이블 기반으로 구현되어 있어, 키를 통해 값을 빠르게 검색, 추가, 삭제할 수 있다. 각 키는 유일해야 하며, 값은 중복될 수 있다.  딕셔너리의 특징키-값 쌍: 데이터를 **키(key)**와 값(val..

TIL 2024.10.24

[파이썬] set() (집합 함수)

set()파이썬의 set(집합)은 중복을 허용하지 않는 변경 가능한 데이터 구조로, 수학에서의 집합과 유사한 개념을 제공합니다. 순서가 없고, 각 요소는 고유해야 하며, 요소 간의 빠른 검색, 추가, 삭제를 지원합니다. set의 주요 특징중복 허용 안함: 한 집합 내에서 동일한 값이 중복될 수 없습니다.순서 없음: 저장된 순서가 유지되지 않으며, 요소를 인덱스로 접근할 수 없습니다.변경 가능: 집합은 새로운 요소를 추가하거나 삭제할 수 있습니다.빠른 연산: 해시 테이블 기반으로, 원소의 추가/제거/검색이 평균적으로 매우 빠릅니다. set 생성하는 법중괄호 {}를 사용하거나 set() 함수를 사용하여 집합을 생성합니다.# 방법 1: 중괄호 사용my_set = {1, 2, 3, 4, 5}# 방법 2: set..

알고리즘 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

[TIL] 2024년 10월 22일

파이썬특정 문자열로 분할 후 리스트 생성sen_split = sentence.split(word)sentence를 word로 분할하여 리스트로 만든다. split() 함수는 지정한 문자열을 기준으로 문장을 나누어 리스트로 반환한다.예를 들어, sentence가 "abcabcabc"이고 word가 "abc"라면, sentence.split(word)는 ["", "", "", ""]가 된다. replace() 메서드문자열의 특정 부분을 다른 문자열로 교체하는 메서드이다. 원본 문자열을 변경하지 않고, 변경된 새로운 문자열을 반환한다. 문자열을 수정하거나 변형할 때 유용하게 사용된다. 📌 문자열은 불변 객체새로운 문자열을 반환한다는 것은, 문자열이 불변 객체이므로 원본 문자열은 변경되지 않는다는 것을 말한다..

TIL 2024.10.23

[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

[자바 중급] 10. 예외 처리 2

코드를 통해 오류 발생 시뮬레이션과, 예외 처리 흐름을 알아보자.  사용자의 입력을 통해 오류를 발생시킨 후, 예외를 따로 처리하지 않고 밖으로 던진다.  오류 발생 시뮬레이션 1️⃣ 1. 어떤 종류의 오류가 발생했는지 담는 클래스public class NetworkClientExceptionV2 extends Exception { private String errorCode; public NetworkClientExceptionV2(String errorCode, String message) { super(message); //어떤 오류가 발생했는지 담는다. this.errorCode = errorCode; } //에러 코드를 조회할 수 있게 추가 p..

[파이썬] replace() 메서드

replace() 메서드문자열의 특정 부분을 다른 문자열로 교체하는 메서드이다. 원본 문자열을 변경하지 않고, 변경된 새로운 문자열을 반환한다. 문자열을 수정하거나 변형할 때 유용하게 사용된다. 📌 문자열은 불변 객체새로운 문자열을 반환한다는 것은, 문자열이 불변 객체이므로 원본 문자열은 변경되지 않는다는 것을 말한다.  기본 구문string.replace(old, new[, count])old : 교체할 부분 문자열.new : 대체할 문자열.count : 생략 가능, 교체할 횟수(지정하지 않으면 모든 old를 교체).  1️⃣ 예시 1 : 모든 부분 문자열 교체text = "apple banana apple"new_text = text.replace("apple", "orange")print(new_..

알고리즘 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