Stay Hungry Stay Foolish

분류 전체보기 429

[파이썬] zip() 함수

zip()파이썬의 zip() 함수는 여러 이터러블(iterable)(리스트, 튜플 등)을 동시에 순회하면서, 각 이터러블의 동일한 인덱스에 있는 요소들을 튜플로 묶어 반환하는 함수이다. 즉, 여러 시퀀스의 요소들을 하나씩 차례대로 짝지어준다.  zip() 기본 구문zip(iterable1, iterable2, ...) 입력 : 여러 개의 이터러블 객체 (예: 리스트, 튜플 등).출력 : 각 이터러블의 요소들을 묶은 튜플로 이루어진 이터레이터. 사용 방법1️⃣ 리스트 두 개를 묶기list1 = [1, 2, 3]list2 = ['a', 'b', 'c']zipped = zip(list1, list2)print(list(zipped)) 출력 결과[(1, 'a'), (2, 'b'), (3, 'c')]리스트 lis..

알고리즘 2024.10.25

[파이썬] 딕셔너리(Dictionary), dict()

Dictionary파이썬의 딕셔너리(dictionary)는 키-값 쌍으로 데이터를 저장하는 변경 가능한(mutable) 자료 구조이다. 딕셔너리는 해시 테이블 기반으로 구현되어 있어, 키를 통해 값을 빠르게 검색, 추가, 삭제할 수 있다. 각 키는 유일해야 하며, 값은 중복될 수 있다. 특징키-값 쌍 : 데이터를 키(key)와 값(value) 형태로 저장한다.변경 가능 : 딕셔너리에 새로운 키-값을 추가하거나 기존 값을 변경할 수 있다.빠른 조회 : 키를 사용해 값을 빠르게 조회할 수 있다.순서 보장 : 파이썬 3.7부터 삽입한 순서대로 항목을 유지한다. 딕셔너리 생성 방법딕셔너리는 중괄호 { }를 사용하거나 dict() 함수를 이용해 생성할 수 있다. 1️⃣ 중괄호{ } 사용my_dict = { ..

알고리즘 2024.10.25

[Programmers] L1. 부족한 금액 계산하기 (Python)

[문제 링크] 👇 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이용료 구하기for i in range(1, count + 1): answer += price * iN배 이므로 1부터 count 까지 처음 이용료인 price에 곱한다.곱한 결과를 더하면서 누적한다. 부족한 금액 출력하기if answer - money > 0: return answer - moneyelse: return 0금액이 부족하지 않을 수도 있다. 따라서 금액이 부족한지 아닌지 구분한다.이용료에서 자신이 가지고 있는 금액인 money를 빼서 그 값이 양수이면,이용료 - 가지고 있는 금액음수이면(false 이면)..

[Programmers] L1. 내적 (Python)

[문제 링크] 👇 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이zip() 으로 두 개의 배열을 묶어 각각 한 개씩 동시에 빼기 [파이썬 zip() 함수 정리] 👉 https://dev-cloud.tistory.com/345 Solutiondef solution(a, b): answer = 0 for i, j in zip(a, b): answer += i * j return answer  👩‍💻 회고zip() 까지 사용한 건 좋았는데 리스트 컴프리헨션 활용하려다가 마무리가 안 돼서 포기했다. 숏코딩 보니 내가 하는 방법이 맞았다는 거.. 아쉽다.

[Programmers] L1. 음양 더하기 (Python)

[문제 링크] 👇 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSolutiondef solution(absolutes, signs): answer = 0 for i in range(len(signs)): if signs[i] == 1: answer += absolutes[i] else: answer -= absolutes[i] return answer  👩‍💻 회고숏코딩 한 거 보니 어나더 레벨if 문에서  == 1 해줄 필요 없이 그냥 if signs[i] 라고만 해줘도 됐었다. 불필요한 코드 추가..

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

[문제 링크] 👇 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이💡 슬라이싱, 행 열 변환, sum(), max() 이용  📌 각 행, 열의 합 구하는 방법for i in range(100): sum_num = sum(board[i][:])[ : ]모든 인덱스를 슬라이싱 한다. [5 : ] = 5부터 끝까지 슬라이싱, [5 : 7] = 5부터 6까지 슬라이싱, [ : 8] = 처음부터 7까지 슬라이싱sum(board[i][:])i가 0부터 99까지 움직이므로 각 행의 전체를 가져와서 합계를 구한다. 📌 행 열을 서로 변경하는 방법new_board = list(map(list, zip(*board))..

SWEA 2024.10.25

[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