목록PS/Python (269)
지나가던 개발자
s = input() angle_bracket = False to_print = "" for i in s: if i == "": angle_bracket = False print(i, end='') continue if angle_bracket: print(i, end='') continue if i == " ": print("".join(list(reversed(to_print))), end=' ') to_print = "" continue to_print += i print("".join(list(reversed(to_print)))) 꺽쇠의 안쪽인지 아닌지를 True or False 형태로 판별한 뒤, 뒤집은 문자열 혹은 뒤집지 않은 문자열을 출력한다. 16번라인~19번라인... [틀렸습니다]가 떠..
s1 = input() s2 = input() lcs = [[0 for col in range(len(s1)+1)] for row in range(len(s2)+1)] for i in range(1, len(s2)+1): for j in range(1, len(s1)+1): if s1[j-1] == s2[i-1]: lcs[i][j] = lcs[i-1][j-1]+1 continue lcs[i][j] = max(lcs[i-1][j], lcs[i][j-1]) print(max(sum(lcs, []))) 이 문제를 풀고 솔브닥 골드가 되었다...! LCS를 구하는 알고리즘을 설명한 글은 밑에다가 첨부해 놓겠다. 내가 글을 하나 쓸까 하는 생각도 했지만 밑의 블로그가 너무 잘 써서 그걸 보는 편이 나을 듯 하다...
while True: try: print(input()) except: break 11718번 문제와 정답 코드가 정확히 일치한다. 11718번은 브론즈V였는데 이건 왜 브론즈II인지 알 수가 없다.
group_word = 0 for i in range(int(input())): is_group_word = True word = input() wordAlphabet = [] for j in word: if j not in wordAlphabet: wordAlphabet.append(j) if len(wordAlphabet) == len(word) or len(wordAlphabet) == 1: group_word += 1 continue for j in range(len(wordAlphabet)): if j == 0 or j == len(wordAlphabet)-1: if len([x for x in word.split(wordAlphabet[j]) if x != '']) == 1: continue ..
from itertools import combinations from string import ascii_lowercase l, c = map(int, input().split(" ")) alphabets = sorted(input().split(" ")) vowels = ["a", "i", "u", "e", "o"] consonents = list(set(ascii_lowercase)-set(vowels)) for i in list(combinations(alphabets, l)): if len([x for x in i if x in vowels]) >= 1 and len([x for x in i if x in consonents]) >= 2: print("".join(i)) 파이썬은 사실상의 PS ..
print(str(bin(int(input())+1)[3:]).replace("0", "4").replace("1", "7")) 골드V문제를 한줄코딩하다니... 라기보단 내가 푼 것이 아니다. 나는 구현만 했고, 푼 건 다른 사람이다. 문제를 보고 뭔말인지 모르겠어서 블로그를 찾아봤는데, 이런 글이 눈에 띄었다. 분명 패턴이 있는데 이 패턴을 어떻게 정리하고 구현할지 고민하다가 K+1의 이진수에서 가장 큰 자리수를 없애면 매칭이 된다는 것을 알게 되었다. 즉, K가 5일때 4와 7로 만들 수 있는 5번째 작은 수는 74인데 위의 그림에서 74를 7을 1로 표현하고 4를 0으로 표현한 이진수로 보았을 때 10으로 되어있다. 이때 5+1(=6)의 이진수는 110이고 여기서 가장 큰 자리수인 1을 없애면 10..
while True: try: print(input()) except: break n개의 줄에 입력되는데, 이 n을 알려주지 않아 상당히 곤란했던 문제이다. 여기서 try-except문을 쓴 이유는 만약 줄이 끝나면 EOFError가 뜰 것이기 때문이다. EOFError는 End-Of-File의 약자로, 입력이 끝나 데이터가 없을 때 나는 에러이다. 이 글을 쓰는 데 도움이 되었던 자료: https://heewon9809.tistory.com/65 [백준 파이썬] #11718: 그대로 출력하기 https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. ..
grade = [int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input())] print(sum(sorted(grade)[3:])) toPrint = [] for i in sorted(grade)[3:]: toPrint.append(grade.index(i)) for i in sorted(toPrint): print(i+1, end=' ') 이게 왜 실버V? 아무리 높게 잡아도 브론즈2 정도인 것 같은데... 어쩌면 파이썬으로 풀어서 그럴지도 모른다. 갓-파이썬