본문 바로가기

psS2mj58

[SWEA] 1486. 장훈이의 높은 선반 (Python3) 문제 링크 : swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b7Yf6ABcBBASw 나의 논리 문제를 읽어보면 서론이 구구절절인데, 핵심은 점원 N명의 키를 리스트로 받은 후에 그 키들을 조합해서 높이 B 이상이 되는 경우를 찾으면 되는 문제였다. 한 가지 유의할 점은 높이 B 이상인 것이 여러 개일 때는 그 합이 B와 가장 가까운, 즉, 차이가 적은 값을 답으로 한다는 것이다. 예를 들어, 주어진 조건에서 높이 B = 16일 때 점원들의 키를 조합해서 16이 나오면 베스트고, 그 이상이 나오면 B와 가장 가까운 17부터 시작해서 아무튼 가장 가까운 값을 답으로 하면 된다. # date: 2020/10/25 # autho.. 2020. 10. 25.
[Python3 문법] format을 이용해서 소수점 이하 자릿수 표현하기 새벽에 알고리즘 문제 풀어보다가 시간초과 나서 머리 좀 식힐 겸, 파이썬 문법 연습 좀 할 겸 백준에서 안 풀어본 브론즈 문제 중에 하나를 골라서 풀어보았다. 4344. 평균은 넘겠지 (문제 링크: www.acmicpc.net/problem/4344)라는 아주 기초적인 알고리즘 문제였다. 쉬운 문제였지만 파이썬 초보인 나에게 공부할 만한 내용이 있었다. 1. 반올림 2. 소수점 이하 3번째 자리까지 출력하기 1. 반올림 보통 반올림, 올림, 내림의 경우 다른 언어에서도 round(반올림), ceil(올림), floor(내림)를 사용하고, 찾아보니 파이썬에서도 같은 방법을 사용하면 된다. 다만, round 함수의 경우 내장되어 있지만, ceil과 floor는 import math를 하고 math.ceil과.. 2020. 10. 24.
[Python3 문법] packing(패킹)과 unpacking(언패킹)의 개념과 객체 요소 출력하기 (서론👩🏻) 수업을 듣다가 2차원 배열의 입력을 제대로 받았는지 확인하는 과정에서 이 unpacking이라는 개념을 새롭게 알게 된 김에 공부해봤다. 쌍으로 묶여져 있는 요소들을 따로따로 빼내는 역할을 한다고 생각하면 된다고 하고, 또 자주 쓰이는 개념이라고 해서 알아보려고 한다. 파이썬에서는 packing(패킹)과 unpacking(언패킹)이라는 개념이 존재한다. 말 그대로 packing(패킹)은 포장되어있는 상태고, unpacking(언패킹)은 그 포장을 풀어헤치는 것이라고 생각하면 좀 더 쉬울 것 같다. 인덱스로 접근이 가능한 iterable 자료형(List, Tuple, Dictionary, Set, Map 등)의 요소들을 하나하나씩 unpacking, 즉, 풀어헤치는 것이다. unpacking은.. 2020. 10. 24.
[SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (Python3) 문제 링크 : swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh&categoryId=AV13zo1KAAACFAYh&categoryType=CODE 나의 논리 점수는 0점부터 100점까지 다 나올 수 있으므로 index의 값이 곧 점수다. 따라서 index 값을 그대로 이용하면 되고, 배열의 size는 101이다. 우선 입력되는 수열(scores 배열)을 쭉 받은 뒤에 각 점수가 몇 번씩 나왔는지(cnt 배열) 세준다. 문제에서 요구하는 값은 cnt 배열의 원소 중 가장 큰 값의 index, 즉, 점수를 출력하는 것. 이 때 유의할 점은 최빈수가 여러 개일 수 있다는 것이다. 만약 이런 경우가 발생하면 .. 2020. 10. 21.
[Python3 문법] list(리스트) 내의 최댓값과 그때의 index(인덱스) 값 구하기 (feat.enumerate) 배열 이름이 list라고 할 때, max(list) 이건 배열 원소 중 최댓값을 구하는 것이다. list.index(max(list)) 그리고 이건 배열 원소 중 최댓값의 index(인덱스)를 구하는 것이다. 다만, 최댓값이 여러 개일 경우에는 가장 앞쪽에 있는, 즉, index의 크기가 가장 작은 값이 나온다. 한 걸음 더 나아가서, list.index를 활용하면 최댓값이 여러 개일 경우 가장 앞쪽에 있는 index만 출력된다고 했다. 그런데 나는 최댓값이 여러 개 존재할 경우 그때의 index들을 다 확인하고 싶다면 어떻게 해야할까? enumerate를 활용하면 된다. m = max(list) [i for i,v in enumerate(list) if v == m] 위 문서에도 설명이 잘 나와있지만,.. 2020. 10. 21.
[SWEA] 9940. 순열1 (Python3) 문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXHx23oq0REDFAXR&categoryId=AXHx23oq0REDFAXR&categoryType=CODE 나의 논리 N이 입력되었을 때, 순열이 맞다면 1부터 N까지의 숫자가 한 번씩 다 있어야 한다는 점에 착안해서 테스트 케이스로 입력 받은 숫자들을 sorting 해주고 1부터 N까지의 숫자가 차례대로 있다면 "YES" 아니라면 "NO"를 출력하도록 했다. # date: 2020/10/21 # author: psS2mj # brief: SWEA_9940_순열1 (D3) T = int(input()) for tc in range(1,T+1): an.. 2020. 10. 21.
[BOJ] 5543. 상근날드 (Python3) www.acmicpc.net/problem/5543 (level: Bronze IV) 5543번: 상근날드 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가�� www.acmicpc.net 아직 파이썬에 익숙해지는 단계라서 [단계별로 풀어보기]에서 카테고리마다 안 풀어본 문제 하나 정도씩 풀면서 넘어가고 있다. 이 문제는 '실습 1' 카테고리에 있는 문제. # date: 2020/09/11 # author: psS2mj # brief: BOJ_5543_상근날드 # 첫 번째 풀이방법 burger = [] drink = [] for _ in range(3): burger.. 2020. 9. 12.
[프로그래머스] 문자열 내 p와 y의 개수 (Python3) programmers.co.kr/learn/courses/30/lessons/12916 (Level 1 - 연습문제) 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 예전에 Java로 풀어봤던 문제인데, 연습 삼아서 Python3으로도 한 번 풀어봤다. # date: 2020/09/11 # author: psS2mj # brief: 프로그래머스 연습문제_문자열 내 p와 y의 개수 # 첫 번째 풀이방법 answer = True Pnum = .. 2020. 9. 12.
[프로그래머스] 월간 코드 챌린지 시즌1 (9월) - 2번 (Python3) 2번을 풀다가 문제를 잘못 이해했다는걸 깨닫고 허무해져버려서 눈도, 몸도 너무 피곤했던 나는 누워서 좀 쉬다가 다시 풀어봤다. 머리도 아프고... 시험이나 면접 있는거 아닌 이상 어디 잘 안 돌아다니는데 건강 이상있는건 아니겠지 ㅠ_ㅠ 호에엥😣 아무튼 이 문제도 처음엔 Java로 하려다가 어쩌다보니 Python3으로 풀었다. # date: 2020/09/10 # author: psS2mj # brief: 프로그래머스 월간 코드 챌린지 시즌1 (9월) - 2번 def solution(n): answer = [] result = [[0 for x in range(n)] for y in range(n)] num = 1 x = -1 y = -1 for i in range(n): for j in range(i,n.. 2020. 9. 12.