본문 바로가기

Algorithm40

#3_동명이인 찾기 [동명이인 찾기] 문제 n명의 사람 이름 중에서 같은 이름을 찾아 집합으로 만들어 돌려주는 문제 입력 mylist = ['Sam','Tom','Mike','Sam'] 출력 {'Sam'} [집합] 집합이란 집합이란 리스트와 같이 정보를 여러개 넣어서 보관할 수 있는 파이썬의 기능이다. 다만, 집합 하나에는 같은 자료가 중복되어 들어가지 않고, 자료의 순서도 의미가 없다는 점에서 리스트와 다르다. 집합의 성질 s = set() //{} s.add(1) //{1} s.add(2) //{1,2} s.add(2) //{1,2} s //{1,2} 이미 2가 추가되었으므로, 2가 다시 추가되지 않는다. len(s) //2 {1, 2} = {2 , 1} //자료의 순서는 상관없으므로 둘은 같다 집합의 기능 len(a).. 2019. 11. 5.
#2 _ 최댓값 찾기 [최댓값 찾기] 문제 주어진 숫자 n개 중 가장 큰 숫자를 찾기 입력 mylist = [17,82,18,33,58,7,33,42] 출력 82 [리스트] 리스트란 리스트는 정보 여러 개를 하나로 묶어 저장하고 관리할 수 있는 기능이다. 리스트에서 주의할 점은 자료 위치를 1이 아닌 0부터 센다는 점이다. mylist = [17,82,18,33,58,7,33,42] 가 있는 경우 mylist[0]은 17이 되고 mylist[7]은 42가 된다. mylist[-1]은 리스트의 가장 끝에서 첫번째 자리 즉, 42가 된다. 리스트 기능 len(a) //리스트 길이를 구한다. append(x) //자료 x를 리스트의 맨 뒤에 추가한다. insert(i,x) //자료 x를 리스트의 i번 위치에 추가한다. pop(i).. 2019. 10. 31.
#1 _ 1부터 N 까지 연속한 숫자의 합 [알고리즘이란] 어떤 문제를 풀기 위한 절차나 방법을 의미한다. 문제 1부터 N 까지 연속한 합을 구하는것 입력 'N까지'에 해당하는 N 출력 N = 10 인경우 55가 출력 N = 100 인경우 5050이 출력 [1부터 N까지 연속한 합을 구하는 알고리즘] 코드 def sum_n(N): s = 0 for i in range(1,N+1): s = s + i return s 실행결과 [알고리즘 분석] 알고리즘은 문제를 푸는 절차나 방법이므로, 어떤 문제를 푸는 방법에는 한가지 이상의 방법이 존재한다. 위의 1부터 N가지 연속한 합을 구하는 문제의 경우에도 최소 두가지 이상의 방법이 존재한다. 다른 풀이법은 아래와 같다 가우스의 방법 1 2 3 4 5 6 7 8 9 10 첫번째칸의 1과 10번째 칸의10을 .. 2019. 10. 29.
문자열 _백준 1152번 _ 단어의 개수 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 The Curious Case of Benjamin Button 예제 출력 6 답 a = input().split() print(len(a)) python에서 split()로 입력을 받게 되면 공백을 기.. 2019. 10. 21.