일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주석
- dp
- 이진탐색 #나무 자르기
- 오픽가격
- 안드로이드
- ㅂ
- 오픽공부법
- 이진탐색
- 디피
- 오픽점수잘받는방법
- 탑다운
- 다이나믹프로그래밍
- 바텀업
- opic
- 메모이제이션
- topdown
- 오픽노잼
- XML주석
- 영어말하기
- English
- 오픽
- 안드로이드주석
- XML
- 피보나치수열
- dynamicProgramming
- fibo
- 오픽노잼공부방법
- stack 스택
- 영어회화
목록PS (254)
RUBY
출처:: https://www.acmicpc.net/problem/18870 분류:: 정렬 1. 문제 이해 및 해결과정 2 4 -10 4 -9 0 1 2 3 4 -10 -9 2 4 4 -> 출력 : 2 3 0 3 1 2. 풀이방법 1) dictionary , set 사용 import sys sys.stdin = open("input.txt","r") n= int(input()) arr = list(map(int, input().split())) sorted_arr = sorted(set(arr)) #숫자 : 인덱스 딕셔너리 형태로 저장 dic = { num : i for i, num in enumerate(sorted_arr)} #인덱스를 출력한다. print(' '.join([str(dic[num]) ..
출처:: https://www.acmicpc.net/problem/7785 분류:: 문자열 1. 문제 이해 및 해결과정 2. 풀이방법 1) set 활용 import sys input = sys.stdin.readline n = int(input()) logs = set() for _ in range(n): name, log = input().split() if name in logs: logs.remove(name) else: logs.add(name) for name in sorted(logs, reverse=True): print(name) 3. 오답원인 4. 알게된 점
출처:: https://www.acmicpc.net/problem/1181 분류:: 정렬 1. 문제 이해 및 해결과정 2. 풀이방법 ##단어 정렬 ##https://www.acmicpc.net/problem/1181 import sys sys.stdin = open("input.txt","r") input = sys.stdin.readline n = int(input()) arr = [input().rstrip() for _ in range(n)] arr.sort(key= lambda x : (len(x), x)) print(arr[0]) #중복제거 print for i in range(1,n): if arr[i-1] != arr[i]: print(arr[i]) 3. 오답원인 4. 알게된 점 1) inp..
출처:: https://www.acmicpc.net/problem/10250 분류:: 브루트포스 1. 문제 이해 및 해결과정 h=10, w=12 1) n= 110, 1011호 (110 - 1) % 10 + 1 = 10 (110 - 1) / 10 + 1 = 11 2) n=111, 112호 (111 - 1) % 10 + 1 = 10 (111 - 1) / 10 + 1 = 11 => floor ((n-1)%h) +1 // [1,h] => distance (n-1) / h + 1 //[1,w] 2. 풀이방법 1) python t = int(input()) for _ in range(t): h, w, n = map(int, input().split()) floor = (n-1)% h +1 num = (n-1)//h..
출처:: https://www.acmicpc.net/problem/1730 분류::구현 1. 문제 이해 및 해결과정 2. 풀이방법 n = int(input()) com = input() arrh = [[0 for _ in range(n)] for _ in range(n)] arrw = [[0 for _ in range(n)] for _ in range(n)] h, w =0,0 for c in com : if c == 'U': #위 if h > 0: arrh[h][w] = True h-=1 arrh[h][w] = True elif c == 'D' : #아래 if h 0:..
출처:: https://www.acmicpc.net/problem/11068 분류:: Brute Force 1. 문제 이해 및 해결과정 2. 풀이방법 t = int(input()) def isPalindrome(n, base): digit = [] while n > 0 : digit.append(n % base) n//=base for i in range(len(digit)//2): if digit[i] != digit[len(digit)-i-1]: #팰린드롬 아닌 경우 return 0 return 1 for _ in range(t): n = int(input()) sol =0 for i in range(2,65): sol = isPalindrome(n,i) if sol: break; print(sol)..
출처:: https://www.acmicpc.net/problem/11005 분류::Brute Force 1. 문제 이해 및 해결과정 O(logb N) 2. 풀이방법 n, b = map(int, input().split()) sol ="" while n > 0: re = n%b if (re < 10) : sol += str(re) else: sol += chr(re - 10 + ord('A')) n= n//b print(sol[::-1]) 3. 오답원인 - sol 에 이진법 수 계산 과정 더할 시, re는 숫자 sol문자열 이므로 str(re)를 하지 않을 경우 run time type error 발생한다. 4. 알게된 점 -python 문자열 reverse 출력 : str[::-1]
출처:: https://www.acmicpc.net/problem/10448 분류:: 완전탐색 1. 문제 이해 및 해결과정 Brute force 2. 풀이방법 t = int(input()) tri_num = [] is_eureka = [0] * 1001 #삼각수 체크하기 for i in range(1,1001): num = i * (i+1) //2 if num > 1000: break tri_num.append(num) #유레카 이론 : 삼각수의 합인 수 체크하기 for i in range(len(tri_num)): for j in range(i,len(tri_num)): for k in range(j,len(tri_num)): num = tri_num[i]+tri_num[j]+tri_num[k] if ..