파이썬
-
백준 2775번 : 부녀회장이 될 테야 (Python, 파이썬)카테고리 없음 2019. 1. 6. 21:22
https://www.acmicpc.net/problem/2775 'a 층의 b 호에 살려면 자신의 아래(a-1) 층의 1호부터 b 호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다'라는 규칙을 예를 들어 설명하도록 하겠다.예를 들어 3층 3호에 살고자 한다. 3층 3호에 살려고 한다면 2층 1호, 2층 2호, 2층 3호에 사는 사람들의 합만큼 3층 3호에 데리고 살아야 한다.그럼 3층 2호를 산다고 하면 어떨까? 2층 1호, 2층 2호에 사는 사람들의 합만큼 데리고 살아야 한다. 그렇다면 3층 3호에 데리고 살아야 하는 인원은 3층 2호에 데리고 살아야 하는 인원 + 2층 3호에 데리고 살아야 하는 인원이 된다.이러한 개념을 머릿속에 가지고 코드를 작성했다.123456789T = int(inp..
-
백준 10828번 : 스택 (Python, 파이썬) - 자료구조 스택(Stack)카테고리 없음 2019. 1. 3. 01:04
https://www.acmicpc.net/problem/10828자료구조 중 스택(Stack) 개념을 다루고 싶어 이번 문제를 선정해서 풀어보았다. stack의 사전적 의미가 '쌓다', '더미' 인 것처럼, 자료구조로서의 스택 또한 의미가 비슷하다. 자료를 차례대로 쌓아 자료의 더미를 이룬다. 더미에서 자료를 제거할 때에는 임의로 제거하는 것이 아니라 쌓은 순서의 역순으로 제거한다.예를 들어, 한 박스에 박스 입구 면적에 딱 맞는 벽돌들을 차례대로 담는 경우, 모든 벽돌을 다시 꺼내는 방법은 벽돌을 담은 순서의 역순으로 꺼내는 수밖에 없다.이런 스택의 개념을 참고해서 코드를 짜보았다.123456789101112131415161718192021222324252627282930313233343536cl..
-
백준 1316번 : 그룹 단어 체커 (Python, 파이썬)카테고리 없음 2019. 1. 1. 01:59
그룹 단어라는 개념 자체에 집중하면 된다. 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나야 한다. 한 문자가 일단 존재하면 그 단어는 하나 밖에 존재하지 않거나 존재하더라도 연속해야 한다. 절대 다른 단어로 인해 연결이 결딴나면 안 된다. 그렇담 결국, 절단이 나있느냐 안 나있느냐에 따라 그룹 단어의 여부를 결정할 수 있다. 그룹 단어가 절단 나있는가의 여부는 이중 for 문을 사용해 한 문자와 바로 옆에 인접한 문자를 비교함으로써 확인할 수 있다.코드는 이렇다.12345678910111213141516def check(voca): for i in range(len(voca)): judge = ['F','F'] for j in range(i+1,len(voca)): if voca[i..
-
백준 2292번 : 벌집 (Python, 파이썬)카테고리 없음 2018. 12. 31. 15:39
https://www.acmicpc.net/problem/2292 문제에 힌트가 있다. 마지막에 '예를 들면, 13까지는 3개, 58까지는 5개를 지난다'라는 말이 있다. 임의의 숫자 ~ 13까지는 3개의 방을 지나고, 임의의 숫자 2 ~ 58까지는 5개를 지난 다라는 뜻이므로 해당하는 범위가 있다는 것이다. 입력하는 숫자가 특정 범위에 해당되면 범위에 해당되는 방 숫자를 출력하면 된다.규칙을 찾아보니 수열을 이룬다는 것을 알았다. 1, 7, 19, 37 ... 차수가 진행될 때마다 +6씩 늘어나는 수열이다. 입력 숫자가 1일 경우 방 1개를 지난다(시작을 포함하므로). 1보다 크고 7보다 작거나 같을 경우 방 2개를 지난다. 7보다 크고 13보다 작거나 같은 경우 방 3개를 지난다. 이런 식이다.이..
-
백준 2941번 : 크로아티아 알파벳(Python,파이썬)카테고리 없음 2018. 12. 26. 16:58
12345678910111213141516171819202122232425word = list(' '.join(input()).split())num = len(word)for i in range(len(word)-1): for j in range(i+1,i+2): if word[i] + word[j] =='c=': num-= 1 elif word[i] + word[j] =='c-': num-= 1 elif word[i] + word[j] =='d-': num-= 1 elif word[i] + word[j] =='lj': num-= 1 elif word[i] + word[j] =='nj': num-= 1 elif word[i] + word[j] =='s=': num-= 1 elif word[i] + wor..
-
백준 2908번 : 상수(Python,파이썬)카테고리 없음 2018. 12. 25. 22:14
1234567nums = list(map(int,list(input().split(' '))))first_num = 100*(nums[0] % 10) + ((nums[0] % 100) - (nums[0] % 10)) + (nums[0] // 100)second_num = 100*(nums[1] % 10) + ((nums[1] % 100) - (nums[1] % 10)) + (nums[1] // 100)if first_num > second_num: print(first_num)else: print(second_num)Colored by Color Scriptercs숫자를 입력받아 숫자들을 자릿 수 단위로 하나하나 분해한 뒤, 거꾸로 배치하는 코드를 짰다. 일단 제출해서 정답인데 다른 사람들의 코드를 보니..
-
백준 2920번 : 음계(Python,파이썬)카테고리 없음 2018. 12. 24. 22:48
123456789digits = list(map(int,input().split(' ')))ascending = [1,2,3,4,5,6,7,8]descending = [8,7,6,5,4,3,2,1]if digits == ascending: print('ascending')elif digits == descending: print('descending')else: print('mixed')csascending와 descending에 해당하는 리스트를 각각 만들어둔다.그 후 입력한 숫자 배열의 리스트가 ascending, descending 두 가지 경우에 일치하지 않으면 mixed의 경우로 넘어가도록 한다.