알고리즘 Algorithms/백준 BaekJoon 알고리즘
-
백준 1000번- A+B [Python / C]알고리즘 Algorithms/백준 BaekJoon 알고리즘 2021. 9. 5. 15:53
1000번 문제의 경우, 두 정수를 입력받아 두 수의 합을 출력해주는 프로그램을 작성하는 문제이다. 입력과 출력을 동시에 존재한다. Python a, b 두 개의 수를 input() 함수를 이용하여 동시에 입력받습니다. 그리고 split() 함수를 이용하여 입력받은 두 수를 나눠야합니다. 이때, 파이썬의 경우 디폴트로 문자형으로 인식하기 때문에 형변환을 해줘야합니다. 그래서 int형으로 형변환 하여 출력해줍니다. 더 간단한 방법으로는, 각각 형변환을 시켜주는 것이 아니라 한번에 형변환을 시켜주는 map()함수를 이용하는 것이다. map()는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용된다. 아마, 변수가 더 많아질수록 map() 함수를 이용하는 것이 더 수월할 것이다. C언어 입력받기 ..
-
백준 1316 [파이썬 Python]알고리즘 Algorithms/백준 BaekJoon 알고리즘 2020. 3. 30. 17:10
파이썬 Python 내 풀이 n = int(input()) for i in range(n): word = input() for i in range(1,len(word)): if word.find(word[i-1]) > word.find(word[i]): n -=1 print(n) 숏코딩n = 0 for i in range(int(input())): word = input() if list(word) == sorted(word, key=word.find): n+=1 print(n)* word를 list로 만든 것과 key라는 기준으로 sort 한 값과 같다면 이는 그룹 단어이다.
-
백준 5622 [파이썬 Python]알고리즘 Algorithms/백준 BaekJoon 알고리즘 2020. 3. 30. 16:48
파이썬 Python 내 풀이 #1 리스트 사용n = input().lower() s = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'] time = 0 for i in range(len(n)): for j in s: if n[i] in j: time += s.index(j) + 3 print(time)#2 딕셔너리 사용d = {"ABC":3,"DEF":4,"GHI":5,"JKL":6,"MNO":7,"PQRS":8,"TUV":9,"WXYZ":10} cnt=0 num =input() for n in num: for j in d.keys(): if str(n) in j: cnt +=d.get(j) print(cnt) 숏코딩print(sum(min(ord(c)-64,..
-
백준 1157 [파이썬 Python]알고리즘 Algorithms/백준 BaekJoon 알고리즘 2020. 3. 30. 16:23
파이썬 Python 내 풀이s = input().lower() cnt = [0 for i in range(26)] for i in s: cnt[ord(i)-97] += 1 m = max(cnt) if cnt.count(m) > 1: print("?") else: print(chr(cnt.index(m)+65)) 숏코딩s = input().lower() cnt = {c: s.count(c) for c in set(s)} m = [k for k in cnt.keys() if cnt[k] == max(cnt.values())] print(m[0]) if len(m) == 1 else print('?')* 나는 주로 리스트를 사용하는 편인데, 숏코딩을 찾다가 dictionary를 사용한 코드를 보았다. 앞으로 ..