목록Python (28)
오랑우탄의 반란

오늘도 오랑이는 문제를 풉니다. 삼총사 풀이 과정리스트의 각 인덱스 값이 출력되도록 for문으로 i, j, k 의 범위를 설정해줍니다.i는 0~, j 는 i를 제외하도록 i+1~, k는 i와 j 를 제외하도록 j+1 을 시작점으로 설정해줍니다. 각 인덱스에 대해 출력되는 값을 더한 것이 숫자 3개의 조합이 됩니다. def solution(number): for i in range(len(number)): for j in range(i+1,len(number)): for k in range(j+1,len(number)): answer = number[i]+number[j]+number[k] 숫자 3개의 합이 0이 되면 '삼총사'이기 때문에 i..

오늘도 오랑이는 문제를 풉니다. 이상한 문자 만들기 풀이 과정해당 문제는 아래와 같이 단계별로 쪼개서 생각해볼 수 있습니다. 1. 각 단어들을 공백 기준으로 나눈다 .split()2. 단어 내의 인덱스 위치를 짝/홀로 나눈다 for문, if 문3. 짝/홀 인덱스 위치에 대해 대문자/소문자가 나오도록 한다 .upper() .lower()4. 결과값을 미리 설정해둔 빈 문자열 변수에 쌓아둔다 변수 += 값5. 해당 변수를 출력한다 우선 전체 문자열 s 의 각 단어들을 공백 기준으로 나눠주고 마지막에 출력값을 쌓아둘 빈 문자열 변수를 설정해줍니다. def solution(d): s = s.split(' ') answer = '' for문을 사용해 s 의 각 단어들에 대해 각 조건을 적용시킨 후 띄어쓰기 ..

오늘도 오랑이는 문제를 풉니다. 3진법 뒤집기 풀이 과정3진법이 어떻게 작동하는지부터 알아봅니다. 3진법 ☞ 숫자를 3을 나눴을 때의 나머지와 최종 몫을 역순으로 정렬해서 반환예) 숫자 = 45 일 때 n(3진법) = 1200예) 숫자 = 125일 때 n(3진법) = 11122 즉 3진법대로 숫자 n을 몫이 0이 될 때까지 3으로 나눠서 나머지를 차례대로 정렬하면 문제에서 요구한 '앞 뒤 반전 3진법' 결과물이 이미 나오는 걸 볼 수 있습니다. 밑줄 친 부분에 대해서 while 반복문으로 코드를 작성하면 아래와 같습니다. 결과물을 저장해둘 변수 설정도 잊지 맙시다. 이때 주의해야 할 점은 answer += str(r) 처럼 r 를 문자열로 변환해줘야 answer 에 적재가 된다는 점입니다. ..

오늘도 오랑이는 문제를 풉니다. 최대공약수와 최소공배수 최대공약수, 최소공배수의 특징을 알고 활용하는 문제입니다.1. 최대공약수 = 두 수 중 큰 수를 작은 수로 나눴을 때의 나머지 값 m%n2. 최소공배수 = 두 수의 곱을 최대공약수로 나눈 값 (m*n) / (m%n) 그래서 아래와 같이 풀었는데 어김없이 틀렸습니다. 입력이 9, 7 일 때의 케이스에 대한 나머지 계산이 더 필요하기 때문입니다. def solution(n, m): b, a = max(n,m), a = min(n,m) if b%a == 0: answer = [a,b] else: answer = [b%a,(b*a)/(b%a)] return answer 가장 간단한 풀이는 아래와 ..