
정수의 경우 2가지 방법이 있다. 첫번째는 위와 같이 문자열로 n개의 숫자를 받아서 n번의 반복문을 돌면서 최소와 최대를 탐색하는 것이다. 두번째는 정수의 크기만큼 길이의 배열을 만들어서 각 정수에 해당하는 위치에 정수를 저장하는 것이다. 이렇게 하면 가장 먼저 등장하는 정수는 최소, 가장 뒤에 서 처음으로 등장하는 정수는 최대이다. 특정 상황에서 두번째 방법이 유리하다. 하지만 첫번째 방법이 시간 복잡도가 linear 하므로 더 보편적으로 효율적인 방법이다.

1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식은 주어지지 않는다. 표기식은 알파벳 대문자와 +, -, *, /, (, )로만 이루어져 있으며, 길이는 100을 넘지 않는다. www.acmicpc.net 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연산자에 대응하는 값이 주어진다..

14717번: 앉았다 영학이의 패를 뜻하는 두 개의 정수 A, B가 주어진다. (1 ≤ A, B ≤ 10) www.acmicpc.net from itertools import permutations card = list(range(1, 11)) * 2 # 카드풀 생성 my_card = list(map(int, input().split())) # 내가 뽑은 카드 card.remove(my_card[0]) card.remove(my_card[1]) rank = list(permutations(card, 2)) # 순열을 이용해서 족보 생성 rank.sort(key=lambda x: (x[0] == x[1], (x[0] + x[1]) % 10, x[0])) # 내 카드가 땡일때 if my_card[0] == ..

본격적으로 코딩 테스트 준비를 하면서 몸풀기로 브루트 포스 알고리즘 문제들을 해결해 보았다. 전체를 모두 무식하게 탐색하고 확인하는 알고리즘 문제들이기 때문에 사실 복잡하게 생각할 필요가 없다. 나는 처음에 다른 문제들처럼 뭔가 규칙을 발견하고 우아하게 풀어야 한다고 생각해서 좀 헤매었다. - 결론: 브루트 포스 알고리즘은 그냥 무식하게 풀어라. 무식하게 풀 때 쉽게 풀리고 해답이 바로바로 나왔다. 뭔가 복잡하게 생각하는 순간 구현은 저 멀리.... - 나름 재미있는 시간이었다. 풀고 나서 다른 분들이 작성한 코드를 보면서 더 무식하게도 할 수 있구나 라는 생각을 했다. 더 무식한 코드일수록 내가 더 쉬워졌다. 근데 자꾸 나는 복잡하게 풀려고만....ㅎ - 다음 단계를 향해서 더 나아갈 예정이다. 모든 ..
- Total
- Today
- Yesterday
- 기계식 키보드
- python
- devcon
- 백준
- 네트워크
- DevOps
- 코딩테스트
- boj
- SW마에스트로
- IT대외활동
- 클린코드
- python3.8
- 타입스크립트
- 개발자북클럽
- 합격
- 노마드코더
- 알고리즘
- 노개북
- ssi-at
- 회고
- 프론트엔드
- 오픈소스기여
- 개발자밋업
- 후기
- 프로그래머스
- 오픈소스
- 개발자
- github
- 대전
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |