본문 바로가기

PYTHON57

[Programmers] 문자열 내림차순으로 배치하기 https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr Python 아래처럼 아스키코드로 변환해서 정렬했는데... 그럴 필요가 없었다ㅎㅎ;; def solution(s): return ''.join(sorted(s, reverse=True, key = lambda x: ord(x))) 이렇게 문자열 s를 sorted로 리스트로 변환, 정렬이 바로 가능했다. def solution(s): .. 2022. 6. 15.
[Python] print()와 함께 자주 쓰는 join(), sep='', end='' / spread operator(*) list 등을 출력할 때 join()과 sep, end를 꽤 쓰게 되어 헷갈리지 않으려고 정리해 보았다. join() '문자열'.join(list) 문자열만 join()으로 합칠 수 있다. list의 요소를 한 줄에 하나씩 출력하고 싶다면? sep='\n'를 쓰면 된다. (seperator) 다만 list를 넘길 때에는 spread operator인 *를 붙여줘야 한다. (JavaScript, Dart 등의 ... operator) s_list = ['a', 'b', 'c'] print(*s_list, sep='\n') # * 붙여주기 *를 list 변수명 앞에 붙이지 않으면 그냥 원래대로 list가 출력된다. python의 print는 기본적으로 출력하는 값 끝에 개행 문자가 붙기 때문에, 값을 여러 .. 2022. 2. 6.
[Python] 입력값을 받는 방법들 - input(), sys.stdin.readline() 자주 쓰지만 아직 헷갈리는 입력값 받는 방법들을 정리해 보았다. Python에서 입력을 받는 방법은 input() 함수와 sys 모듈을 import해 사용하는 방법(sys.stdin.readline())이 있다. input()은 입력받은 값에 개행 문자가 없이 반환되고, prompt message를 파라미터로 받아서 사용할 수 있다. 반면 sys.stdin.readline()은 개행 문자가 입력 끝에 포함돼 있고, prompt message를 파라미터로 받아 사용할 수 없다. 아래 캡처 화면을 보면 sys.stdin.readline()으로 받은 input_v는 출력 시 개행 문자가 있어 한 줄이 띄어져 있고 input()으로 받은 input_v_2는 개행 문자가 없는 걸 확인할 수 있다. 그래서 프로그램.. 2022. 2. 6.
[Python] 백준 1874번 - 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net Python n = int(input()) count = 1 stack = [] result = [] for i in range(n): data = int(input()) while count 2021. 7. 21.
[Python] 백준 2798번 - 블랙잭 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net Python n, m = list(map(int, input().split(" "))) numbers = list(map(int, input().split(" "))) result = 0 length = len(numbers) count = 0 for i in range(0, length): for j in range(i + 1, length): for k in r.. 2021. 7. 21.