Stay Hungry Stay Foolish

분류 전체보기 423

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

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 왼쪽과 오른쪽으로 창문을 열였을 때, 양쪽 모두 거리 2 이상의 공간이 확보될 때 조망권이 확보된다. 조망권이 확보된 세대의 수를 반환해야 한다. 풀이 첫 번째부터 이전 2번째까지와 이후 2번째까지 비교를 한다. 리스트 4개 중(현재 아파트 주변 아파트)에서 max값을 찾고 현재 아파트와의 차이를 저장한다. 1. 현재 위치(i-2)에서 바로 양쪽에 있는 아파트(i-3, i-1)와 높이를 비교한다. 2. 양쪽 아파트가 현재 위치보다 높으면 넘어가고, 그렇지 않으면 거리 차이가 2인 아파트(i-4, i)와 높이를 비교한다. 3. 위와 마찬가지로 현재 위치보다 높..

SWEA 2023.11.16

[SWEA] 5431. 민석이의 과제 체크하기 (Python/D3)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 과제 제출하지 않은 사람 오름차순으로 정렬 풀이 과제 제출한 사람을 담은 리스트에 없는 사람을 출력하게 한다. Solution t = int(input()) for tc in range(1,t+1): n, k = map(int, input().split()) non = list(map(int, input().split())) print('#'+str(tc), end=' ') for i in range(1, n+1): if i not in non: print(i, end = ' ') print()

SWEA 2023.11.16

[SWEA] 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (Python/D3)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 두 개의 숫자 N, M이 주어질 때, N의 M 거듭제곱 값을 구하는 프로그램을 재귀호출을 이용해야 한다. Solution def calc(n, m): if m == 0: return 1 else: ans = n*calc(n, m-1) return ans for _ in range(10): cnt = 0 case = int(input()) n, m = map(int, input().split()) print('#'+str(case), calc(n, m))

SWEA 2023.11.16

[SWEA] 5948. 새샘이의 7-3-5 게임 (Python/D3)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 서로 다른 7개의 정수 중 3개의 정수를 골라 합을 구해서 수를 만들려고 한다. 이렇게 만들 수 있는 수 중에서 5번째로 큰 수를 출력한다. 풀이 조합(combinatinos) 사용 1. 반복문으로 3개씩 조합을 만들고 합을 리스트에 저장한다. 2. sorted를 사용해 내림차순 정렬을 하고 set으로 중복을 제거한다. 3. 리스트의 5번째(인덱스 = 4)를 출력한다. ✔️ combinations combinations 함수를 사용하기 위해선 itertools 라이브러리를 가져와야 한다. from itertools import combinations ✔️ c..

SWEA 2023.11.16

[SWEA] 1234. [S/W 문제해결 기본] 10일차 - 비밀번호 (Python/D3)

SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com설명번호 문자열에서 같은 번호로 붙어있는 쌍들을 소거하고 남은 번호를 비밀번호로 만든다. 풀이재귀번호 문자열을 리스트로 만든다.리스트를 재귀로 돌게 한다.리스트 길이만큼 반복문을 돌게 하는데, 여기서 이전과 같은 숫자이면 이전 숫자와 현재 숫자를 리스트에서 제거한다.그리고 그 리스트를 재귀를 돌게 한다. 연속된 같은 수가 없을 때까지 반복 혹은 재귀를 돌게 하고 끝이 나면 리스트를 반환한다.※ 결과값 맨 앞에 0이 있으면 안 되므로 제거해줘야 한다.Solutiondef calc(password): for i in range(1, len(password)): ..

SWEA 2023.11.16

[SWEA] 2070. 큰 놈, 작은 놈, 같은 놈 (Python/D1)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 2개의 수를 입력 받아 크기를 비교하여 등호 또는 부등호를 출력한다. 풀이 비교연산자와 조건문을 사용한다. Solution t = int(input()) for tc in range(1, t+1): a, b = map(int, input().split()) if a < b: print('#' + str(tc), '') else: print('#' + str(tc), '=')

SWEA 2023.11.12

[SWEA] 2071. 평균값 구하기 (Python/D1)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 10개의 수의 평균값을 소수점 첫째 자리에서 반올림한 정수를 출력 풀이 • sum() - 리스트의 합계를 구한다. • round() - 소수점 첫째 자리에서 반올림 한 정수를 반환한다. Solution t = int(input()) for tc in range(1, t+1): num = list(map(int, input().split())) print('#'+str(tc), round((sum(num) / 10)))

SWEA 2023.11.12

[SWEA] 1986. 지그재그 숫자 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 1부터 N까지의 숫자에서 홀수는 더하고 짝수는 뺐을 때 최종 누적된 값을 구한다. 풀이 2로 나눠지는 것과 그렇지 않은 것을 나눈다. 2로 나눠지면 짝수, 나눠지지 않으면 홀수이다. Solution t = int(input()) for tc in range(1, t+1): n = int(input()) ans = 1 #1에서 시작하므로 for i in range(2, n+1): #2부터 계산 if i % 2 == 0: #짝수인 건 마이너스 ans -= i else: #홀수인 건 플러스 ans += i print('#'+str(tc), ans) 👩‍💻회고 1차..

SWEA 2023.11.11

[SWEA] 1989. 초심자의 회문 검사 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 level과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문이라고 한다. 단어를 입력 받아 회문이면 1을 출력, 아니면 0을 출력한다. 단어의 길이는 3 이상 10 이하이고, 공백은 없다. 풀이 1. 단어를 입력 받는다. 2. 반복문을 통해 단어를 거꾸로 하나씩 꺼낸다. 아니면 리스트 변환 후 sort(reverse=true) 3. 입력 받은 단어와 같은지 판단 Solution t = int(input()) for i in range(1, t+1): word = input() revision = '' for w in word[::-1]: re..

SWEA 2023.11.11

[SWEA] 1979. 어디에 단어가 들어갈 수 있을까 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 NxN 크기의 단어 퍼즐에서 특정 길이 K를 갖는 단어가 들어갈 수 있는 자리의 수를 출력한다. 검은색으로 칠해진 곳은 단어가 들어갈 수 없다. 흰색으로 칠해진 곳에만 넣을 수 있다. 검은색 = 0, 흰색 = 1 가로 혹은 세로로 단어를 놓을 수 있다. 단어의 길이와 픽셀수는 같아야 한다. 풀이 가로와 세로를 나눠서 풀이 1. NxN 퍼즐을 이중 리스트로 입력받는다. 2. 먼저 가로를 한 줄 씩 탐색한다. 탐색 중에 픽셀이 1이면, 카운트 값을 증가시킨다. 0을 만나면, 카운트 값과 단어 자릿수랑 맞는지 확인한다. 자릿수와 맞으면 결과값 증가 후 카운트값 초..

SWEA 2023.11.10

BOJ 11728번 : 배열 합치기 (Python/Two-Pointer/Silver 5)

11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 설명 정렬되어있는 두 배열 A, B를 합친 후 정렬해서 출력한다. 첫째 줄에는 배열 A, B의 크기 N과 M이 주어진다. (1부터) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 풀이 • 방법 1 - sort() 문자형으로 입력받고 한 리스트에 A, B를 모두 저장한다. 리스트 내에 있는 요소를 모두 정수형으로 변환한다. sort()를 사용해 정렬하고 리스트에서 꺼내 출력한다. • 방법 2 - two ..

[SWEA] 1946. 간단한 압축 풀기 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 원본 문서의 너비가 10이고, 알파벳의 연속된 개수로 이루어져 있다. 압축된 문서 내용은 알파벳과 숫자로 구성되어 있고, 압축을 풀었을 때 그 개수대로 문서의 너비에 맞게 출력되야 한다. [예제] 압축된 문서의 내용 A 10 B 7 C 5 압축을 풀었을 때 원본 문서의 내용 AAAAAAAAAA BBBBBBBCCC CC 풀이 단순 구현 1. 문자형으로 입력받고 정수는 정수형으로 치환 2. 한 리스트에 알파벳을 모두 저장, 알파벳과 정수를 곱해서 리스트에 더한다. 3. for문으로 리스트에서 하나씩 꺼낸다. 4. 알파벳을 같은 줄에 공백을 제외하고 출력하고 카운..

SWEA 2023.11.09

[SWEA] 1926. 간단한 369게임 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 369 게임이다. 3,6,9가 한 번 들어가면 -를 출력하고 3,6,9가 두 개 이상일 때는 -를 횟수에 맞게 출력한다. 풀이 단순 구현 문제이다. 1. n만큼 반복문을 돌린다. 2. 반복문에서 꺼낸 정수를 분리하고 리스트에 저장한다. 3. 정수를 분리한 리스트에 3, 6, 9가 들어가 있으면, 카운터 함수를 사용해 개수를 센다. 4. 카운트 한 리스트에서 key값이 3, 6, 9인 것만 value값을 결과값에 저장한다. 5. 결과값 개수만큼 '-'를 출력한다. 6. 3,6,9가 들어가 있지 않은 수는 그대로 출력한다. 다른 풀이 1. 리스트에 3, 6, 9..

SWEA 2023.11.07

[SWEA] 1970. 쉬운 거스름돈 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 거스름돈을 최소 화폐로 거슬러줘야 한다. 돈의 종류는 아래와 같이 존재한다. 50,000 원, 10,000 원, 5,000 원, 1,000 원 , 500 원, 100 원, 50 원, 10 원 풀이 그리디 알고리즘이다. 단순 구현 문제이다. 1. 화폐의 종류를 한 리스트에 저장한다. 2. 반복문으로 리스트를 돌린다. 3. 거스름돈을 화폐의 종류 중 하나로 나눈 몫을 따로 저장한다. 만약 거스름돈이 32850원일 때, 나눌 수 있는 제일 큰 화폐는 10000원이다. 10000원으로 나눈 몫은 3이다. 즉, 3장의 10000원으로 거슬러 줄 수 있다는 말이다. 4..

SWEA 2023.11.06

[SWEA] 1204. 최빈수 구하기 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 1000명의 학생들 점수 중 최빈수(가장 많이 나타나는 값)를 출력해야 하는 문제이다. 다만, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력해야 한다. 각 테스트 케이스의 첫 줄에는 케이스의 번호가 주어지고, 그 다음줄부터는 점수가 주어진다. 풀이 1. 총 1000명을 탐색해야 하는데 데이터가 많아서 시간과 메모리를 줄이는 방법을 생각한다. 2. collections 모듈의 Counter 함수를 사용한다. counter 함수는 같은 값끼리 묶고 그 개수를 센다. 3. counter한 후 values 기준으로 내림차순 정렬을 한다. 4. 정렬한 리스트의 첫..

SWEA 2023.11.02