Stay Hungry Stay Foolish

SWEA 87

[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

[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

[SWEA] 1983. 조교의 성적 매기기 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 학점이 A+ 부터 D0까지 총 10개의 평점이 있다. 총점은 중간고사(35%) + 기말고사(45%) + 과제(20%) 비율로 반영된다. 10개의 평점을 총점이 높은 순서대로 부여한다.(이게 본문제) 각각의 평점은 같은 비율로 부여할 수 있다. 학점을 알고싶은 K번째 학생의 번호가 주어졌을 때 K번째 학생의 학점을 출력해야 한다. 테스트케이스의 첫 번째 줄은 학생수 N과 학점을 알고싶은 학생의 수 K가 주어진다. 테스트케이스의 두 번째 줄부터 각각의 학생이 받은 시험 및 과제 점수가 주어진다. 풀이 1. 한 리스트에 평점을 다 저장한다. 2. 시험 및 과제 비..

SWEA 2023.11.02

[SWEA] 1984. 중간 평균값 구하기 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 최댓값과 최솟값을 제외한 나머지 평균값을 출력해야 한다. 평균값이 소수점이 나올 경우, 소수점 첫째 자리에서 반올림한 정수를 출력해야 한다. 풀이 리스트의 전체 합에서 최소와 최대를 뺀후, 평균값을 계산한다. 파이썬 내장함수 sum, max, min, round를 사용한다. • sum(list) - 리스트의 합을 계산하여 반환한다. • max(list) - 리스트에 있는 값 중 최댓값을 반환한다. • min(list) - 리스트에 있는 값 중 최솟값을 반환한다. • round() - 값을 반올림 한 후, 소수점을 버리고 정수만 출력한다. 두 번째 인자도 받을..

SWEA 2023.11.01

[SWEA] 1966. 숫자를 정렬하자 (Python/D2)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 주어진 N 길이의 숫자열을 오름차순으로 정렬한다. 풀이 정렬에 관한 내용 👇 [자료구조] sort, sorted, 정렬, 이중 리스트 정렬 (Python) 정렬 ✔ list.sort() - 오름차순으로 정렬 list = [3, 4, 2, 1, 5] list.sort() print(list) 출력 결과 [1, 2, 3, 4, 5] ✔ list.sort(reverse = True) - 내림차순으로 정렬 list = [3, 4, 2, 1, 5] list.sort(reverse=True) print(list) 출력 결 dev-cloud.tistory.com Solu..

SWEA 2023.10.31

[SWEA] 1936. 1대1 가위바위보 (Python)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 가위바위보를 구현하는 문제이다. 다만, 비기는 경우는 없다. Solution #20:41 - 20:50 a, b = map(int, input().split()) rock = 2 scissors = 1 paper = 3 #주먹을 냈을 때 이기는 건 보, 가위를 냈을 때 이기는 건 주먹, 보를 냈을 때 이기는 건 가위 if a == rock: if b == scissors: print("A") else: print("B") elif a == scissors: if b == paper: print("A") else: print("B") else: if b == ..

SWEA 2023.10.30

[SWEA] 2072. 홀수만 더하기 (Python)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 설명 10개의 수를 입력받아서 그 중에서 홀수만 더한 값을 출력한다. 풀이 마지막 자릿수가 2의 배수가 아닌 것만 더한다. Solution t = int(input()) for i in range(1, t+1): num = list(map(int, input().split())) ans = 0 for j in num: split_num = list(map(int, str(j))) #그냥 i로하면 TypeError : 'int' obeject is not iterable if split_num[-1] % 2 != 0: #[-1] : 리스트 요소 중 마지막만 가져오기..

SWEA 2023.10.30