[프로그래머스] Lv.1 문자열 내림차순으로 배치하기
아스키코드값을 이용했다. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
라고 했으므로.. A는 65고 a는 97이니까 아스키값을 비교해주면 되겠구나~하고 이걸로 풀었다.
def solution(s):
answer = ''
ascii_list = []
for i in s:
ascii_list.append(ord(i))
ascii_list.sort(reverse=True)
for j in ascii_list:
answer += chr(j)
return answer
ord(i)
로 아스키값 구하고, 이를 내림차순으로 정렬한 다음 chr(j)
를 이용해 answer
에 하나씩 더해줬다.
def solution(s):
return ''.join(sorted(s, reverse=True))
나는 개뻘짓했다..sorted
를 쓰면 문자열을 자동으로 정렬해준단다..어이가 없다.. 이제라도 알았으면 됐다..
def solution(numbers):
answer = -1
list=[]
# 배열에 없으면 담아주고 더해주기
for num in range(1, 10):
if num in numbers: # 있으면 넘어가고
continue
else:
list.append(num)
answer = sum(list)
return answer
def solution(numbers):
return 45 - sum(numbers)
이제 슬슬 내자신에게 짜증남
def solution(s):
if (len(s) == 4 or len(s) == 6) and s.isdigit():
return True
else:
return False
문자열 s
가 주어졌을 때
s.count(x)
: x
가 등장하는 횟수 반환s.find(x)
: x
가 존재하는 인덱스를 반환 (없다면 -1, 여러개면 맨 처음 인덱스만)s.rfind(x)
: x
가 존재하는 인덱스를 반환 (없다면 -1, 여러개면 맨 마지막 인덱스만)s.upper()
: 모든 문자를 대문자로s.lower()
: 모든 문자를 소문자로s.swapcase()
: 소문자는 대문자로, 대문자는 소문자로s.capitalize()
: 첫 문자만 대문자로 변경하고 나머지 문자열은 모두 소문자로s.title()
: 각 단어의 앞 문자를 대문자로 바꿔주고 다른 문자들은 소문자로.lstrip()
, .rstrip()
, .strip()
, .replace()
는 자주 쓰는 메서드라 생략
isdigit()
, isalpha()
, islower()
, isupper()
도 까먹지 않긔 ^^
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
arr_sum = []
for j in range(len(arr1[i])):
arr_sum.append(arr1[i][j] + arr2[i][j])
answer.append(arr_sum)
return answer
def solution(left, right):
answer = 0
for i in range(left, right+1): # left부터 right까지
cnt = 0
for j in range(1, i+1): # i(본인까지 나눠주기)
if i % j == 0: # 나누어 떨어지면 약수
cnt += 1 # 약수의 개수에 더해줌
if cnt % 2 == 0:
answer += i
else:
answer -= i
return answer
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer
제곱수의 약수의 개수는 홀수개임을 이용한 풀이.. 생각해보면 제곱수가 아니면 모두 다른 수가 짝지어서 곱해지니까..
난 공대생이 맞는가
이런거 1개도 모름..