728x90

전체 글 98

[Python]백준 BaekJoon.AC 10866 : 덱(deque, try-except)

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 10828-스택, 10856-큐, 이번엔 10866-덱 스택 기본 문제의 마지막인 듯 하다. 애초에 덱으로 문제를 풀어왔기 때문에 이전과 크게 다르지 않다. 명령 가짓수가 많아져 더 추가한 것 말곤 달라진 게 없다. 아래 글을 참고하면 좋겠다. 2022.01.24 - [[Python]BaekJoon.AC] - [Python]백준 BaekJoon.AC 10828 : 스택(deque,..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10845 : 큐(deque, try-except)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이전에 했던 10828-스택 변형문제다. 까다롭게 변형된 것도 아니라 기존 틀에 몇 가지만 더해주면 된다. 문제 이름은 '큐'지만... 덱을 이용했다. 파이썬에선 queue와 deque이 뚜렷하게 차별화된 기본 사용법을 가지진 않는 것 같다. 큐보다 덱이 더 기능이 많은 것 같기도 하고... 양방향 추가·추출이 가능한 deque과 그렇지 않은 queue 중 굳이 queue를 사용할..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10828 : 스택(deque, try-except)

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 경우의 수가 많기 때문에 switch문을 사용하면 좋겠지만 파이썬에선 그런 구문이 없다. 하지만 if문의 능력범주가 넓고 이용하기 쉽기 때문에 크게 문제되지 않는 것 같다. 우선 한 줄씩 입력받아 그 라인을 split해 리스트에 저장해주고, if문을 이용해 명령어에 따라 나눠지게 만들었다. 먄악 추가적인 정보가 필요한 명령어라면 아까 저장한 리스트 옆칸엔 반드시 정보가 들어있을 ..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10816 : 숫자 카드2(Counter, 이진탐색X)

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 다양한 방법을 시도했던 문제다... 이건 틀리고 이건 시간초과고, 떠오르는 방법을 다 적용해봤는데 이렇다 할 해결방법이 없었다. 분명 하라는대로, 이진탐색으로 풀었는데... 리스트로도 해보고 딕셔너리도 사용해보고. 처음엔 딕셔너리도 이진탐색엔 어울리지 않는 것 같아 리스트로만 해보다, 다들 딕셔너리를 당연하듯 쓰길래. 그리고 이진탐색 아닌 방법으로도 해봐도 안되길..

[Python]BaekJoon.AC 2022.01.22

[Python]백준 BaekJoon.AC 10773 : 제로(deque)

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 가장 최근에 넣은 스택 옆에 저장하고, 가장 최근에 넣은 스택을 꺼내오는 덱을 이용했다. 구현은 그리 어렵지 않아 이만 설명을 마친다. 코드로 이해하는 편이 빠를 것 같다. from collections import deque import sys K = int(input()) deq = deque() result = 0 for i in range(K): num =..

[Python]BaekJoon.AC 2022.01.21

[Python]백준 BaekJoon.AC 9012 : 괄호(스택, 리스트)

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 직전에 풀었던.. 4949 - 균형잡힌 세상 보다 이 문제가 먼저 있었더라면 덜 어려웠을 텐데... 순서가 뒤바뀐 듯 하다. https://stepping-coding.tistory.com/82 [Python]백준 BaekJoon.AC 4949 : 균형잡힌 세상(list, stack) https://www.acmicpc.net/problem/4949 4949번: 균형..

[Python]BaekJoon.AC 2022.01.21

파이참(PyCharm ) - 글꼴 테마 배경색 추천..? 글자색 컬러 다운로드

- 컬러 배합 추천 받습니다! 파이참을 사용하며 문득 든 생각은 테마가 살짝.. 밋밋하단 거다. 애초에 다크버전을 사용했지만 회색과 주황의 조화만으론 한눈에 알아보기도 힘들고. 플러그인에서 theme를 다운받아 적용시켜봤는데, 외국 감성이라 도저히 눈이 적응을...(구리단 뜻이다) 다들 그냥 그러려니 하며 쓰는 건가! 나 또한 그러려니 하며 쓴다!!ㅋㅋㅋㅋ;;; 이것은 이공계의 눈물이다.. 다운받은 테마에 꼭 필요한 글자색만 대충 바꿔 쓰고있다. 플러그인에서 다운받은 theme를 변형해 사용하고 있는데, 워낙 구려서 굳이 다운받아도 되지 않을 것도 같지만 그래도 난 Rider Melon Dark를 손봐줬다. 이 정도의 패치를 원한다면 글을 더 읽어도 좋다. 그러기 위해선 먼저 Rider UI Theme ..

기타 잡서 2022.01.21

파이참(PyCharm ) - 한글 패치

대부분의 프로그램이 영어로 이뤄져있고 한글을 지원하지 않다보니 나를 프로그램에 맞출 수밖에 없었다.. 고난이도의 독해를 요하는 것도 아니고 늘 누르던 버튼만 누르다보니 한두번 알아두면 그럭저럭 사용할만해 그냥 썼는데, 프로그램 내에 오류가 발생하면 그때부터 영어를 집중해 읽기 시작해야 한다는 것이다ㅋㅋㅋ... 가만보면 중국어나 일본어는 다들 기본적으로 있는 것 같던데, 대부분의 프로그램에 한국어가 없는 건 프로그램을 사용하는 한국인들이 대부분 어느정도 영어를 읽고 그러려니 하며 사용하기 때문이 아닐까..? 많은 사람들이 계속 만들어달라고 칭얼댔으면 만들어주지 않았을까 하는 뇌피셜. 역시 요구하고 칭얼대야 이득이 돌아온다.. 물론 나도 그러려니 하며 사용했던 1인이기에 할 말은 없지만, 이미 플러그인에 한..

기타 잡서 2022.01.21

[Python]백준 BaekJoon.AC 4949 : 균형잡힌 세상(list, stack)

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 간단해보였지만 꽤나 애먹은 문제다.. 한줄씩 그 자체를 string으로 받아줬고, 한글자씩 for 처리하여 진위를 판별했다. 게 중 [ ( 가 등장한다면 리스트에 등록해줬다. 처음엔 ] ) 도 등록해줘 함께 처리하려 했는데, 일이 점점 더 많아지더라.. 다른 사람들의 코드를 참고했더니 [ ( 를 리스트에 저장하고, ] ) 가 나오면 가장 마지막에 저장된 리스트 목록을 살펴 진위를 판..

[Python]BaekJoon.AC 2022.01.21

[Python]백준 BaekJoon.AC 2164 : 카드2(deque, queue)

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 알고리즘 분류가 큐인데.. 큐로 풀었더니 틀림처리 된다... 이유는 시간초과. (큐로 다른 풀이법이 있는건가..) 더보기 import queue N = int(input()) que = queue.Queue() for i in range(N): que.put(i+1) while que.qsize() != 1: que.get() que.put(que.get()) print(que.get()) 아마 ..

[Python]BaekJoon.AC 2022.01.20

[Python]백준 BaekJoon.AC 2108 : 통계학(Counter, sum)

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 우선 N이 1일 때는 모든 계산에서 예외처리 해줬다. 코드대로 한다면 엉뚱한 답이 나오기에. 전체코드에서 for문부터 나름 1~4번째 출력값별로 단락을 나눠 구별해줬는데... 알아보기 편하려나. -먼저 sum을 이용해 리스트 값을 더해 산술평균을 구했다. round 처리해 반올림도 잊지 않았다. -리스트를 오름차순으로 정렬한 후, N//2번째 리스트 값으로 중앙값을 구해주고. -대망의 최빈값인데. 힘겹게 코드를..

[Python]BaekJoon.AC 2022.01.20

[Python]백준 BaekJoon.AC 1978 : 소수 찾기(에라토스테네스의 체)

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 보통의 방법으로 풀 수 없음은 짐작했지만 에라토스테네스의 체를 이용해 풀어야 함은 떠올리지 못했다. 알고리즘 분류를 보고 직접적인 힌트를 얻었고, 조금의 복습이 필요했다. 알고자하는 수보다 작거나 같은 수를 대상으로 진행하면 된다. 1보다 큰 자연수의 배수를 지우는 방식이다. 이때, 만약 n의 배수라면 n을 제외한 모든 배수를 지우는 것이다. 설명이나 코드로 이해하기 난해할 수 있다. 그림으로 이해하는 편이 훨씬 쉽다. 내 방식이 더 복잡한지 아닌지는 모르겠으나....

[Python]BaekJoon.AC 2022.01.20

[Python]백준 BaekJoon.AC 1920 : 수 찾기(이분탐색)

https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 가볍게 함정에 빠져 이분탐색 문제임을 확인해주고..! 오랜만에 하려니 여러 시행착오를 겪으며 드문드문 천천히 작성해갔다. 세세한 디테일을 단번에 구현하기란 어렵다. 이분탐색 구조를 외우면 쉬운데 안외우고 원리를 기억해 가끔 작성하려니 힘들다ㅎㅎ 프로그램 저장위치 바꿔줬더니 오류 떠서 해결하는 데도 애먹었다.. 아이클라우드 위치를 탐색하지 못하다니....

[Python]BaekJoon.AC 2022.01.19

[Python]백준 BaekJoon.AC 11651 : 좌표 정렬하기2(sys, sort())

https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 좌표 정렬하기1의 변형편이다. 그렇지만 x, y였던 우선순위가 y, x로 바뀌기만 해서 간단히 수정해주면 된다. sort() 문장에서 우선순위만 바꿔주면 된다. import sys N = int(input()) num = [] for i in range(N): num.append(list(map(int, sys.stdin.readline()..

[Python]BaekJoon.AC 2022.01.16

[Python]백준 BaekJoon.AC 11650 : 좌표 정렬하기(sys, sort())

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 놀러와서도 코딩하겠다고 노트북 붙잡고 있는 내가 최고...^^ 아른거려 하나라도 올리고 자야겠다. 그리 어렵지 않은 문제. 그러나 첫번째 for문을 구현하는 문장이 조금 헷갈렸다. 더 간단한 방법이 있는지 찾아봐야겠다. 2차원 배열을 구현하려다보니 이렇게 됐다. 늘 사용하던 것들이지만 합쳐지니 복잡해보인다. import sys N = int(i..

[Python]BaekJoon.AC 2022.01.15
728x90