일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 액션바 필요없숴
- 클라우드란?
- cmd2
- pwnable
- 6566
- col -1 from CursorWindow
- 페니빙
- UNIQUE constraint failed
- cmd1
- python
- 코틀린
- Docker
- 쏘큩
- 애너그램 그룹
- 나이순 정렬
- 백준
- 10814
- 클라우드가 뭐야
- 파이썬
- Couldn't read row 0
- Drive-By-Download
- pwnable.kr
- 포너블
- pwable.kr
- java.lang.IllegalStateException
- 블록체인
- tlqkf
- Make sure the Cursor is initialized correctly before accessing data for it.
- SQLiteConstraintException
- kotlin
- Today
- Total
목록Baekjoon Online Judge (30)
푸르미르
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하는 프로그램이다. 정말 쉬워보이지만 다른 언어 가튼 경우 다른 방법을 통해 좀 복잡하게 풀어야 하지만 파이썬은 그렇게 하지 않아도 된다. 파이썬2까지만 해도 long 타입이 존재했었는데 파이썬3부터는 int로 통합되었다. 파이썬은 integer overflow가 발생하지 않기 때문에 너무나도 편리하다. 사랑스러운 파이썬. 1 2 a, b = map(int, input().split()) print(a+b) cs www.acmicpc.net/problem/10757
호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 코드를 짠 아이디어를 설명하겠다. 해당 호텔의 총 층수:h, 호텔의 총 호수:w, 몇 번째 손님의 방 호수를 출력 할 지:n가 주어진다. 만약 6 12 10 이 주어진다면 10번째 손님의 방은 402호이다. 또 6 12 6 일때에는 601호로 배정해준다. 손님들에게 온순서대로 방을 배정해 줄 때 방 호수의 우선순위를 보면 첫번째 손님은 101호, 두번째 손님에겐 201호, 102호는 7번째 손님에게, 202호는 8번째, 302호는 9번째, 402호는 10번째 손님에게 배정해준다. 이중 for문으로 풀면 풀수 있겠지만 시간초과가 날까 걱정한 나머지 다른방법을 찾기로 했다. 10=6*1+4 이렇게 나타낼 수 있는데, 이때 ..
그냥 달팽이가 잠을 안자고 꼭대기까지 쭉 올라갔으면 좋겠다는 생각이 드는 문제이다. 입력값으로 띄어쓰기를 기준으로 a,b,v가 주어진다. 차례대로 낮에 달팽이가 올라갈수있는 거리(미터), 달팽이가 잘때 미끄러져 내려가는 거리, 꼭대기의 높이이다. 처음 while문을 사용하여 코딩을 했었는데 시간초과가 떴다. 구글링을 해보니 반복문을 사용하지 않아도 구할 수 있다는 것을 알게 되어 다시 코드를 짰다. 생각보다 간단했다. 달팽이는 꼭대기까지 올라가는데 어차피 마지막엔 a거리 만큼 움직여야 한다. 이게 무슨 뜻이냐면, 예를 들어, 입력값이 2 1 5 이렇게 주어졌다면, 달팽이는 (2-1)+(2-1)+(2-1)+2 >= v 이것이 참이때문에 꼭대기 까지 가는데 4일이 걸린다는 것을 알 수 있다. 이때 맨마지막에..
내분수가 어느정도인지 알게해준 문제다. 자괴감든다. 어쨋든 코드 설명전 아이디어를 말하겠다. 대각선으로 분수를 지그재그로 나열했을 때 몇번째 분수를 찾을것인지 입력값으로 주어지면 해당 번째에 있는 분수를 출력해주는 문제이다. 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> 1/3 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. 짝수번째 대각선라인의 분수들은 분모는 -1씩 작아지고, 분자는 +1로 숫자가 바뀌고, 홀수번째 대각선라인의 분수들의 분모는 +1,분자는 -1로 작아진다. 그리고 각 분모 분자의 숫자는 몇번째 라인인지에 따라 숫자 범위가 달라진다. 예를 들어 3번째라인의 분수는 3/1, 2/2, 1/3인데 3..
주어진 n번째의 피보나치 수를 출력하는 문제이다. 피보나치 수는 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 ....이런식의 수열이다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. n번째 피보나치 수는 (n-2)+(n-1)=n 이다. 이를 통해 코드를 짜보면, 1 2 3 4 5 6 7 8 9 10 def op(n): if n==1 or n==2: total=1 elif n==0: total=0 else: total=op(n-2)+op(n-1) return total print(op(int(input()))) cs www.acmicpc.net/pr..
N이라는 수가 주어지면 N!을 한 값을 재귀함수를 이용하여 결과값을 출력하는 문제이다. N!=1*2*3*....*(N-1)*N (N-1)!=1*2*3*....*(N-1)이므로 결국 N!= (N-1)!*N임을 알 수 있다. 이것을 알고 코드를 짠다면 1 2 3 4 5 6 7 8 def factorial(a): if a == 0: #0!=1 return 1 elif a == 1: #1!=1 return 1 return a * factorial(a-1) #2이상의 수 입력시 print(factorial(int(input()))) cs www.acmicpc.net/problem/10872
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 정가운데에 주소가 1번인 방이 위치해 있기 때문에, 주소인 숫자가 점점 커질수록 주어진 값이 주소인 방까지 가는데 지나쳐가는 방의 개수는 증가한다. 단순히 주소가 커지면 커질수록이 아니라 일정 범위 이상 커질 경우에 지나가는 방의 개수가 증가한다. 예를 들어, 1을 중심으로 숫자가 육각형을 그리며 증가한다. 1을 감싸는 육각형을 만드는 벌집의 주소 범위는 2부터 7까지다. 2부터 7사이의 주소인 방으로 가는데에는 1번 벌집에서 부터 모두 2개의 방을 지나야 한다. 8부터 19까지의 주소범위에 속하는 방은 모두 1번 벌집으로 부터 3개의 방을 지나야 한다. 2부터 7까지의 방은 총 6개이고 8부터 19까지의 방은 12..
모든 그룹단어의 경우의 수를 고려하여 코드를 짜는게 좀 힘들었던 문제다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 groupWord = 0 #총 그룹단어의 수 for i in range(int(input())): tof = True #그룹단어일 때:true, 그룹단어가 아닐때:false string = input() k=0 while k
크로아티아 알파벳을 운영체제에 표기하는데 몇몇개의 크로아티아 알파벳은 일정한 형태로 변경해서 입력해야 했다. 입력값이 주어지면 그 단어가 몇개의 크로아티아 알파벳으로 이루어져 있는지를 출력하는 프로그램에 대한 문제이다. 1 2 3 4 5 6 a=['c=','c-','dz=','d-', 'lj','nj','s=','z='] alpha=input() for t in a: alpha = alpha.replace(t,'!') print(len(alpha)) cs 그렇다면 입력값이 'z=dz='일 때에 괜찮겠냐는 의문이들 수 있다. 만약 입력값을 그렇게 했을 때 a리스트의 index가 0부터 비교하여 replace해주는 것이기 때문에 index가 2인 'dz='부터 replace되어 '!'로 바뀌게 될것이다. 그..
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하는 문제이다. 알파벳 대소문자 구분없이 가장 많이 사용된 알파벳을 대문자로 출력해 내야하기 때문에 입력된 단어의 글자를 모두 대문자화 시키고 시작했다. 첫번째 짠 코드를 보면, 1 2 3 4 5 6 7 8 9 10 11 12 from collections import Counter alpha=input().upper() #대문자화 counter=Counter(alpha) #Counter 생성 list1=counter.most_common(2) #가장 많이 쓰인 최빈값이 index가 0, 두번째로 많이 쓰인 값이 index가 1 list2=list(list1[0]) #첫번째로 가장 많이 쓰인 것..