파이썬3

알고리즘 (PS)/BOJ

[백준] 14653 - 너의 이름은

https://www.acmicpc.net/problem/14653 14653번: 너의 이름은 첫째 줄에 OAKAK TALK방에 있는 사람 수 N과 총 메시지의 개수 K, 정보를 알고 싶은 메시지의 번호 Q가 주어진다. (1 ≤ N ≤ 26, 1 ≤ K ≤ 10,000, 1 ≤ Q ≤ K) 둘째 줄부터 K개의 줄에 걸쳐 메시지를 읽지 www.acmicpc.net 알고리즘 분류는 문자열, 구현으로 되어있다. 구현 문제가 맞기는 한데, 개인적으로 실버5 난이도보다는 살짝 높은 난이도의 구현이라고 생각했다. 풀이 아이디어 이 문제는 메세지를 보낸 사람과 그 메세지를 읽지 않은 사람의 숫자가 주어질 때, 임의로 선택한 메세지를 읽지 않은 가능성이 있는 사람을 모두 찾는 문제이다. 처음 이 문제를 봤을 때는 풀이..

알고리즘 (PS)/BOJ

[백준] 9465 - 스티커

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net DP 유형의 '스티커' 문제이다. 데이터가 추가되면서 옛날에 맞았던 코드가 틀리자 다시 풀어보게 되었다. 기본적인 DP의 문제풀이 방식은 문제를 단계별로 쪼개어 이전단계에 푼 문제를 이번 단계 풀이에 활용하는 것이다. 이 문제는 이전 단계에 어떻게 문제를 풀었는지에 따라 이번 단계에 문제 풀이 방식이 달라진다는 점이 특징인 문제였다. 피보나치 수열, 정수삼각형과 같은 단순 메모이제이션 ..

알고리즘 (PS)/BOJ

[백준] 1918 - 후위 표기식

https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 문자열처리 문제처럼 보였지만, 의외로 자료구조 문제였다. 아이디어를 구상하고 구체화, 테스트하는데 30분, 코드로 구현하는데 30분 정도 걸린 것 같다. 문제를 이해하는데 큰 어려움은 없었다. 풀이 아이디어 이 문제를 푸는데 중요한 것은 아래 2가지를 떠올리는 것이다. 1. '우선 순위가 높은 연산자를 먼저 처리한다' 2. 괄호 내부의 연산은 괄호 외부와 문제 풀이 구조가 동일하다 = 재..

알고리즘 (PS)/BOJ

[백준] 3709 - 레이저빔은 어디로

https://www.acmicpc.net/problem/3709 3709번: 레이저빔은 어디로 레이저박스라는 게임은 정사각형 모양의 n x n 보드에서 진행한다. (체스판을 상상하면 된다) 레이저박스의 임의의 칸마다 우향우 거울이라는 장치가 설치되어 있고, 마지막으로 레이저 한개가 www.acmicpc.net 그래프 연습문제를 찾다가 오늘은 적당한 난이도로 해보고자 solved.ac 기준 골드 5인 문제를 골랐다. 번역은 오역이 난무해서 문제 이해조차 제대로 안되고, 난이도는 또 너무 쉬워서 좋은 기억은 없었던 문제.. 이 정도 난이도면 실버5~4 수준으로 넣어도 아무 상관 없을 것 같다.. 번역에서 행과 열을 거꾸로 쓰는 바람에 매우 헷갈렸다. 행인데 어떻게 맨 밑에서 위로 쏘는건지... 이 문제는 ..

알고리즘 (PS)/BOJ

[백준] 17298 - 오큰수 (재귀 풀이)

https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 설명을 간단하게 하면, 내 오른쪽에 있는 숫자들 중, 나보다 큰 첫번째 숫자를 찾는 문제이다. 5 2 3 8 이면, 5 입장에서 오른쪽에서 가장 처음만나는 자기보다 큰 숫자는 8, 2 입장에서도 8 3 입장에서도 8이다. https://www.acmicpc.net/problem/14659 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000..

IT/Python3

[Python3] 실행 인자 받기 (sys 모듈의 argv)

C, C++, Java 와 같은 언어는 main 함수에 인자를 넣어 프로그램을 실행시 인자를 주어 실행하면 해당 인자를 받아 인자 정보를 가진채로 프로그램을 실행할 수 있습니다. 하지만, 파이썬은 기본적으로 인자를 받지 않습니다. 파이썬에서 인자를 받기 위해서는 sys모듈의 argv를 사용해야 합니다. from sys import argv script, first, second, third = argv print(f"script name is {script}") print(f"1st argument is {first}") print(f"2nd argument is {second}") print(f"3rd argument is {third}") 다음과 같이 스크립트 실행시 스크립트로 인자에 담긴 정보를 받..

알고리즘 (PS)/BOJ

[BOJ][Python3/PyPy3] 15811 - 복면산?!

solved.ac 기준 실버2 수준이었던 제게는 매우 어려웠던 스터디 연습 문제 이 문제를 푸는 과정을 적으며, 효율적인 알고리즘에 대한 복기를 해보려고 합니다. [문제] 복면산이란 수학 퍼즐의 일종으로, 어떤 계산식의 각 숫자들을 특정 문자로 바꾸면 각 문자가 어떤 숫자인지 맞추는 퍼즐이다. => 각 문자가 어떤 '숫자' 인지 맞추는 퍼즐입니다. 저는 '숫자'와 '수'를 혼동해서 "A = 10 같은 것도 가능할까?" 같은 쓸데없는 고민도 했었습니다. 복면산 문제가 주어질 때, 답이 존재하는지 여부를 출력하시오. 단, 같은 문자는 같은 숫자에 대응되어야 하며, 서로 다른 문자는 서로 다른 숫자를 나타낸다. 또한, 수는 0으로 시작할 수 있다. =>아래 예시 힌트가 없었다면 빼먹고 체크를 안할 수도 있었던..

에버듀
'파이썬3' 태그의 글 목록