답: 25314
import sys
N = int(sys.stdin.readline())
a = N / 4
print('long ' * int(a) + 'int')
아래 코드는 vscode에서 실행할때는 정상 출력되지만 백준에 제출하면 런타임에러가 뜬다!
함수를 만들어 풀이하는 것이 익숙해서 그대로 만들었지만 시간복잡도 상으로 좋지 않은 코드인 것 같다.
def solution(N):
a = N / 4
answer = int(a) * 'long ' + 'int'
return answer
print(solution(N))
팀원들의 풀이
1)
N = int(input())
bite = ""
while True:
if N >= 4:
bite += "long "
N -= 4
if N == 0:
break
2)
import sys
input = sys.stdin.readline
number = int(int(input())/4)
print("long "*number+"int")
문제 분석 및 해석
만약, 입출력이 'N'바이트 크기의 정수라면 프로그램을 어떻게 구현할까?
입력 : 4 20
출력 : long int long long long long long int
1) 생각한 풀이
간단히 N을 나누어서 long에 곱하여 출력해주는 함수를 만들기
- 과정 -
N = int(sys.stdin.readline())
a = N / 4
print('long' * int(a) + 'int') # 출력 longint
띄어쓰기 없이 출력되어서 'long ' 에 띄어쓰기를 추가해주었다.
답: 프로그래머스: 문자열 내 마음대로 정렬하기
def solution(strings, n):
strings.sort()
answer = sorted(strings, key=lambda x:x[n])
return answer
앞에서 한 번 정렬해주고 lambda를 사용해 문자열 내 특정 위치를 비교해 다시 정렬하기
팀원의 풀이!
def solution(strings, n):
answer = sorted(strings, key=lambda x:(x[n], x))
return answer
두 가지 다 비교하여 정렬해주는 방법..!!
역시 아직 람다에 대한 이해가 부족하다..ㅠㅠ
문제 분석 및 해석
문자열 내 마음대로 정렬하기
문자열로 구성된 strings
정수 n = 각 문자열인덱스 n번째 글자를 기준으로 오름차순 정렬
strings n return
["sun", "bed", "car"] 1 ["car", "bed", "sun"]
["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"]
1)생각한 풀이
sorted 함수를 사용하고
범위연산자에 n을 넣어주면 어떨까?
과정1.
TypeError: list indices must be integers or slices, not str
리스트의 인덱스는 문자열이 아니라 정수여야한다.
def solution(strings, n):
for s in strings:
print(strings[s][n-1]) # 여기에서 s는 sun, [sun]을 넣은 것이어서 생긴오류
과정2.
for문으로 풀어볼 생각으로 진행중이었는데, 람다를 사용하면 간단히 풀이할 수 있다는 이야기를 듣고 재시도 하였다..
def solution(strings, n):
answer = sorted(strings, key=lambda x:x[n])
미리 정리해주기
strings.sort()
'알고리즘 풀이' 카테고리의 다른 글
[algorithm] 페어 - 프로그래머스: 성격 유형 검사하기 (2) | 2023.05.18 |
---|---|
[algorithm] 페어 - 백준:2108 통계학 (1) | 2023.05.04 |
[algorithm] 페어 - 백준:2563 색종이 (0) | 2023.05.02 |
[algorithm] 페어 - 프로그래머스: 나머지가 1인 수, 없는 숫자 더하기 (0) | 2023.05.01 |
[algorithm] 페어 - 프로그래머스: 비밀지도 (0) | 2023.04.28 |