목록코팅테스트/백준 문제 모음 (296)
For Programmer

s = input() if s[0] == " " and s[s.__len__()-1] == " ": #공백이 문장 맨앞과 맨뒤 모두에 존재한다면 print(s.count(" ")-1) #공백의 개수에서 -1만 해준다. elif s[0] == " " or s[s.__len__()-1] == " ": #공백이 문장 맨앞과 맨뒤 둘중 하나만 존재한다면 print(s.count(" ")) #공백의 개수는 글자의 개수와 같다. else: #공백이 문장 앞 뒤 모두 없다면 print(s.count(" ")+1) #공백의 개수+1 글자의 개수와 같다. -> 이문제는 공백의 위치만 파악해주면 된다. 공백이 문자 맨앞에 나오는경우와 문자 맨뒤에 나오는 경우 둘다 나오는 경우 이렇게 3가지만 따로 조건을 걸어 처리해주고 ..

array = input() countInfo = [] result = "" upperArray = array.upper() # array문자열을 모두 대문자로 변경 for j in range(ord("A"), ord("Z")+1): #A부터 Z까지 아스키코드 값으로 돌기 for i in upperArray: #대문자로 변경한 문자열 접근 if j == ord(i): #대문자로변경한 문자의 각 아스키코드 값이 A-Z의 아스키코드 값과 같다면 countInfo.append([upperArray.count(i), j]) # 해당하는 아스키코드 값과 그것의 개수를 countInfo 이중 리스트에 저장 #여기서 이중리스트에 첫번째 값은 항상 sort,max 등의 함수에 사용되기 때문에 count값을 첫번째 원소..

나의코드 t = int(input()) #전체 테스트케이스 입력 for _ in range(t): #테스트 케이스 횟수만큼 돌기 info = list(map(str, input().split())) # 문자열 반복횟수와 문자열 입력받기 n = int(info[0]) #문자열 반복횟수 인트로 변환 s = list(str(info[1])) #문자열의 각각의 원소를 하나씩 리스트에 대입("abc" -> "a","b","c" for i in s: #문자열의 각각의 원소에 접근 print(i * int(n), end="") #각각의 문자마다 반복횟수만큼 곱하여 출력(파이썬은 문자열 곱하기 지원) print() #한줄 띄우기 -> 위의 코드를 더 간결하게 만들 수 있다. 여기서 변수 s에 굳이 문자열 info[1]..

우선 find 함수를 이용하면 굉장히 쉽게 풀 수 있다. n = input() alphabet = list(range(97,123)) # == list(range(ord("a"),ord("z")+1) for x in alphabet: print(n.find(chr(x)),end=" ") #문자열 내부에 (chr(x))의 값이 있으면 해당문자열의 첫번째 위치를 반환 없으면 -1 반환 -> find함수는 문자열의 내부에 해당값이 존재하면 그 값이 존재하는 첫번째 위치를 반환해주며 없다면 -1을 출력한다. (chr()함수는 chr의 인자로 전달되는 아스키코드값을 다시 문자로 바꿔준다.) 단, 나는 find함수 존재를 몰랐기 때문에 해당 find함수를 구현할 수 밖에 없었다. 구현은 다음과 같다. n = inp..

a = input() print(ord(a)) print(ord(a)) #문자에 맞는 아스키코드 변환 #97출력 print(chr(97)) #아스키코드에 맞는 문자 반환 #a출력 -> ord 와 chr 만 알면된다.

일반적인코드 def hansu(x: int): count = 0 #개수 for i in range(1, x + 1): array = list(map(int, str(i))) #숫자를 문자열로 변환후 리스트에 넣으면 각각의 원소만 저장이가능하다. 이를 map함수를 이용해 각각의 원소를 다시 int형을 바꾸어 준다. if i > 99: #세자리수일때의 계산 if array[1] - array[0] == array[2] - array[1]: count += 1 elif i > 999: #네자리 수일때의 계산 if array[1] - array[0] == array[2] - array[1] == array[3] - array[2]: count += 1 else: #두자리수 미만일때는 그냥 count에다가 +1 ..

나의 코드 array = [False] * 10036 #9999 일때의 경우의 수를 고려해 10036까지 배열 설정 def solve(): for i in range(1, 10001): if i < 10: #한자리수일때 array[i + i] = True #각자리수의 합+전체수를 True로 변경 elif i < 100: #두자리 수일때 array[i + (i // 10) + (i % 10)] = True #각자리수의 합+전체수를 True로 변경 elif i < 1000: #세자리 수일때 array[i + (i // 100) + (i % 100 // 10) + (i % 100 % 10)] = True #각자리수의 합+전체수를 True로 변경 elif i < 10000: #네자리 수일때 array[i + (..

c = int(input()) for _ in range(c): array = list(map(int, input().split())) sum2 = sum(array[1:]) #합계 출력 avg = sum2 / array[0] #평균 출력 count = 0 for i in range(1, array.__len__()): if array[i] > avg: count += 1 result =count / array[0] * 100 print("%0.3f%%" %result) # %0.3f