[백준 문제풀이 : 10809번] 파이썬 - 알파벳 찾기
·
Algorithm/Baekjoon
소문자로만 이루어진 단어 하나를 입력받고, 그 소문자가 알파벳 a~z를 대조했을때 단어의 a~z가 단어의 몇번째자리에 위치했는지 파악하는 문제이다. 만약 a~z중에 단어에 없는 알파벳이 있다면 해당알파벳의 자리는 -1로 표기한다. 우선 for문으로 a~z까지 26번의 반복문을 돌려 리스트(단어)가 존재한다면 또 다시 반복문을 돌리는 if문을 활용했다. 존재하지 않는다면 -1로 표기하는 if문을 만들고 존재한다면 단어의 개수만큼 반복문을 다시 돌려서 몇번째 자리에 존재하는지 표기하는 반복문을 돌려준다. s = str(input()) list_s = list(s) for i in range(26): #알파벳의 개수만큼 반복 if chr(i+97) in list_s: #알파벳a의 아스키코드인 97만큼 더한숫자..
[백준 문제풀이 : 27866번] 파이썬 - 문자와 문자열
·
Algorithm/Baekjoon
1차원배열이 끝나고 문자열에 들어왔다. 문자열을 입력받아서 그 문자열안의 알파벳을 하나하나 쪼개서 몇번째 순서의 알파벳은 무엇인지 추출해내는 작업이다. 굉장히 간단한 문제인데 문제는 하나하나 쪼개는 방법을 까먹었다. 역시나 오늘도 구글링을 하여 쪼개는 방법을 알아봤는데 너무나도 간단했다. input으로 문자열을 입력받고 list(input)을 하면 알아서 구성요소가 하나하나 쪼개진다. s = input() i = int(input()) list_s = list(s) print(list_s[i-1]) s = list(input())으로 한줄 더 줄일 수 있을 것 같긴한데 시도는 안해봤다.. 다음문제 풀때는 한번 시도해봐야겠다.
[백준 문제풀이 : 3052번] 파이썬 - 나머지
·
Algorithm/Baekjoon
슬슬 문제를 보고 어떤식으로 이문제를 풀어야하는가 고민하고 계획을 세워야 할 때가 온 것 같다. 문제를 보자마자 아 이문제는 어떤식으로 풀어야겠다! 라고 바로 떠오르지 않는다. 3~5분정도 혼자 고민을 해보고 나온 답은, 먼저 리스트에 값을 집어넣는 코드를 짠 뒤, 또 다른 리스트 함수를 정의해주고,입력값 리스트를 42로 나눈 나머지 값이 result 리스트함수에 존재하지 않는다면 append하는 방식으로 새로운 리스트를 작성했다. 그리고 마지막으로 result리스트의 값의 개수를 출력하도록 하는 코드를 쓰면 풀릴 것 같았다. a_list = [] for _ in range(10): a = int(input()) a_list.append(a) result_list = [] for i in range(le..
[백준 문제풀이 : 5597번] 파이썬 - 과제 안 내신 분..?
·
Algorithm/Baekjoon
입력과 출력 둘다 한줄에 값 한개씩만 입,출력하기 때문에 간단하게 포문을 돌려서 입력을 쭈욱 받아, 다시 포문을 돌려 만약 i값이 리스트안에 없다면 출력하게끔 하는 코드로 만들어 보았다. n = [] for _ in range(28): a = int(input()) n.append(a) for i in range(30): i += 1 if i not in n: print(i) 이 문제의 경우에는 다른 방법으로도 풀 수 있을 것 같다는 생각에 다른 사람들은 어떻게 풀었는지 찾아보기로 했다 students = [i for i in range(1,31)] for _ in range(28): applied = int(input()) students.remove(applied) #소거 print(min(stude..
[백준 문제풀이 : 10810번] 파이썬 - 공 넣기
·
Algorithm/Baekjoon
처음 문제를 봤을 때 하나의 리스트를 만드는 것이 아니라 여러개의 리스트를 만들어서 각 리스트변수 안에 원소가 어떤 것들이 들어가있는지 전부 파악해야되는 문제인줄 알고 한참을 해맷다... 주머니에 공을 넣을 때 같은번호의 공이면 헌 것을 빼고 새 것을 넣는다는 의미인줄 알았는데 다른번호여도 기존의 공을 빼고 새로운 공을 다시 집어넣는 작업이었던 것이다. 한마디로 하나의 리스트로 새로 입력받기만 하면 되는 문제..! (점점 가면갈수록 문제이해하는 것이 힘들어진다...) n,m = map(int, input().split()) basket = [0] * n for _ in range(m): i,j,k = map(int, input().split()) for x in range(i,j+1): basket[x-..
[백준 문제풀이 : 2562번] 파이썬 - 최대값
·
Algorithm/Baekjoon
첨에 문제를 대충읽고 출력값만 보았을때 최댓값과 최소값을 구하는 문제인줄알고 max와 min을 사용했다가 한번 오답이 나왔다 머쓱; a = [] for _ in range(9): a.append(int(input())) print(max(a)) print((a.index(max(a))+1)) 먼저 a라는 변수에 리스트를 만들어주고 append를 이용해서 하나하나 입력을 받았다. 문제에 9개의 자연수라고 공시되어있었으니 굳이 반복횟수는 입력받지않고 9번으로 고정 마지막줄에 .index는 해당 리스트안에서 몇번째 원소인지 찾아내는 함수인데 이게 기억이 안나서 사실 리스트안에서 특정값 위치찾는 법 이라고 검색해서 알아냈다... ㅋㅋ 그리고 리스트는 기본적으로 0부터 시작하기 때문에 +1을 추가해서 적어주었다.
[백준 문제풀이 : 10807번] 파이썬 - 개수 세기
·
Algorithm/Baekjoon
문제의 의도는 리스트안에 몇개의 정수를 넣을 것인지 먼저 변수값을 입력받고 리스트 안에 넣을 숫자들을 입력받은 뒤, 그 안에서 다음 제시하는 숫자가 몇개가 포함되어있는가를 파악하는 문제이다. 11을 입력했을 경우, 어떻게 리스트안에 11개의 숫자만을 입력받게 할 수 있을 것인가 그것이 제일 어려웠다. 입력값과 출력값이 정해져 있는 문제이다 보니 사실 11이라는 숫자는 무의미하게 그냥 입력만 받고 리스트숫자를 입력받은뒤 그 리스트안에 숫자가 몇개있는지만 출력하게하면 간단하게 정답이 나올 것 같은데.. 문제의 의도 자체가 11개의 값을 입력받도록 하는 문제이기 때문에 이것을 어떻게 해야하나 한참 고민을 했다 이번 문제도 내 머리로는 도저히 해결되는 문제가 아니었기에 구글링을 해봤다. ??? 대부분의 블로거들..
[백준 문제풀이 : 10951번] 파이썬 - A + B - 4
·
Algorithm/Baekjoon
단순히 반복하여 덧셈을 시키는 문제처럼 보이지만 테스트할 개수를 미리 지정하지도 않고 언제 끝날지 지정하지도 않는다. 정해진 숫자가 있지않으니 while문을 활용하는 것 같긴한데, 어떤식으로 문제를 풀어라는 건지 도저히 감도 잡히지 않아 결국 구글링을 해보기로했다. 다른 사람들이 풀이한 문제를 보고 이해하려고 했다. ' while 반복문을 이용해서 문제를 풀었고 수가 입력되지 않아서 에러가 발생하면 반복문을 끝낼 수 있도록 try - except 구문을 활용해서 문제를 풀었다. ' 라는 구절을 찾을 수 있었다... try 와 except는 정말 아에 처음보는 이름이었다. 위에서 설명 되있는 것과 같이 수가 입력되지 않아 에러가 발생한다면 명령을 줄 수 있는 함수가 따로 있었다. 우선 while True를..