728x90
반응형

코딩테스트 91

[자료구조] 스택 - Stack

🙆‍♂️Stack First in Last out인 자료구조 입니다. 데이터가 쌓여져 가는 구조인데 PUSH라는 명령어로 데이터를 Stack의 가장 위에 올리고 POP이라는 명령어로 Stack의 가장 위의 명령어를 뺍니다. TOP이라는 명령어는 가장 위의 명령어에 접근합니다. 코딩테스트에서는 배열을 사용하여 스택이라고 가정하여 접근합니다. 🙋‍♂️문제 🚀 valid parentheses 괄호 열리고 닫힌 것을 구분하는 문제들은 stack 문제로 보고 풀 수 있습니다. PUSH를 해서 괄호를 열어주고 POP을 해서 매칭이되면 괄호를 닫아줍니다. 매칭이 안되면 invalid하다는 것을 출력하는 것입니다. >관련 문제

[백준][Python] 18870. 좌표 압축

🙆‍♂️문제 🙋‍♂️풀이 좌표 압축 한다는 것은 가장 낮은 수부터 0으로 압축하여 다시 표현하는 것입니다. 입력 예제를 보면 -10이 가장 작아서 0 그 다음 -9는 1... 해서 출력 예제처럼 나오게 됩니다. 🚀 입력받기 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) 먼저 숫자 개수와 숫자들을 입력받습니다. 🚀 문제 풀이 핵심 sortArr=list(dict.fromkeys(arr)) sortArr.sort() arrDict={} for i in range(len(sortArr)): arrDict[sortArr[i]]=i 입력받은 arr값들을 sortArr로 중복을 제거하고 정렬합니다...

[백준][Python]10814. 나이순 정렬

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 n = int(input()) arr = [list(input().split()) for _ in range(n)] for i in range(n): arr[i][0] = int(arr[i][0]) 입력을 받고 for문을 사용해서 나이 값(arr[i][0])을 int형으로 형변환 해줍니다. 🚀 문제 풀이 핵심 arr.sort(key=lambda x:x[0]) key값을 나이값으로 맞춰주기 위해 x:x[0]을 해줍니다. 🚀 출력하기 for i in range(n): print(arr[i][0],arr[i][1]) 출력합니다.

[백준][Python] 1181. 단어 정렬

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 import sys n = int(sys.stdin.readline()) arr = [input() for _ in range(n)] 배열을 입력받습니다. 🚀 문제 풀이 핵심 delOvl = list(dict.fromkeys(arr)) delOvl.sort() delOvl.sort(key=len) delOvl이라는 리스트 변수를 선언해서 먼저 dict.fromkeys()를 사용해서 arr의 중복을 없애고 저장을 한 후 delOvl.sort()를 통해서 알파벳 순으로 배열을 정렬한 후 delOvl.sort(key = len)을 하여 문자열의 길이에 따라 배열을 정렬해주면 끝입니다. 🚀 출력하기 for i in range(len(delOvl)): print(delOvl[..

[백준][Python] 11650. 좌표 정렬하기

🙆‍♂️문제 🙋‍♂️풀이 stable한 정렬방식을 사용하면 되는데 파이썬은 sort함수를 이용하면 됩니다. 🚀 입력받기 import sys n = int(sys.stdin.readline()) arr = [list(map(int,sys.stdin.readline().split())) for _ in range(n)] sys를 통해서 빠른 입력을 받습니다. 🚀 문제 풀이 핵심 arr.sort() 배열을 정렬해주고 🚀 출력하기 for i in range(n): print(arr[i][0],arr[i][1]) for문을 사용해서 출력합니다.

[백준][Python] 25304. 영수증

🙆‍♂️문제 🙋‍♂️풀이 물건 값들을 계산하여 영수증에 적힌 금액 x와 비교하면 됩니다. 🚀 입력받기 x = int(input()) n = int(input()) arr = [list(map(int,input().split())) for _ in range(n)] 영수증에 나온 값 x와 물건 수 n, 그리고 가격을 계산하기 위한 배열 arr을 선언합니다. 🚀 문제 풀이 핵심 total = 0 for i in range(n): total += arr[i][0]*arr[i][1] total값을 선언하고 for문을 이용해서 0번 상품의 가격(arr[0][0]) * 개수(arr[0][1])를 하여 물건 수 만큼 반복하여 더합니다. 🚀 출력하기 if x==total: print("Yes") else: print(..

[백준][Python] 3003. 킹, 퀸, 룩, 비숏, 나이트, 폰

🙆‍♂️문제 🙋‍♂️풀이 킹은 1개, 퀸도 1개, 룩은 2개, 비숍도 2개, 나이트도 2개, 폰 8개가 있어야 한다. 킹, 퀸, 룩, 비숍, 나이트, 폰에 대한 개수가 입력되면 정상적인 체스 수가 되려면 추가되야 할지 빼야할지에 대해 출력하면 된다. 🚀 입력받기 inputChess = list(map(int,input().split())) 먼저 chess라는 배열에 현재 체스말 수를 입력 받는다. 🚀 문제 풀이 핵심 stdChess = [1,1,2,2,2,8] outputChess =[] for i in range(6): num = stdChess[i]-inputChess[i] outputChess.append(num) 먼저 기준이 되는 stdChess 배열을 정의합니다. 그리고 for문을 사용하여 st..

[백준][Python] 25305. 커트라인

🙆‍♂️문제 🙋‍♂️풀이 점수들을 배열로 저장하고 내림차순으로 정렬하여 k-1번 째 값을 출력하면 커트라인이 출력됩니다. 🚀 입력받기 n,k = map(int,input().split()) scores = list(map(int,input().split())) 배열의 수 n과 커트라인 명 수 k를 입력받습니다. 그리고 점수 배열 scores를 입력 받습니다. 🚀 문제 풀이 핵심 scores.sort(reverse=True) scores 배열을 내림차순으로 정렬합니다. 🚀 출력하기 print(scores[k-1]) 커트라인에 걸린 점수를 출력합니다.

728x90
반응형