본문 바로가기

알고리즘 & 코딩테스트

(48)
Programmers Lv.1 "서울에서 김서방 찾기" 리스트안 특정요소의 인덱스를 찾는 문제입니다. 이 경우 index( )을 이용하면 됩니다. 한 가지 유의할 점이 있다면 리스트의 인덱스, 딕셔너리의 키값, range객체의 범위 처럼 유한한 범주를 가지는 값들에 대해서는 굉장히 조심스러워야 합니다. 지금처럼 간단한 문제야 발생하지 않겠지만 나중에 이를 고려하지 않게되면 흔히 자주보는 list out of range 에러를 자주 만나게될지도 모릅니다!!! 다행히 요 문제는 제한사항에 친절히 명시해주는군요ㅎㅎ def solution(seoul): position = seoul.index("Kim") answer = "김서방은 "+str(position)+"에 있다" return answer
Programmers Lv.1 "두 정수 사이의 합" 이 문제에서 눈여겨 봐야할 부분은 정수의 총합입니다. 파이썬에서 총합을 구하는 방식은 크게 2가지가 있습니다. sum() 을 사용한다. 반복문을 이용해 주어진 범주내 숫자를 하나씩 누적하여 합을 구한다. 상황에 맞게 사용하시면 될 것 같습니다. 개인적으로 본인이 주어진 상황에 대해서 알고리즘적으로 자세히 알 고 있다면 주어진 내장 함수를 사용하는 것이 좋다고 생각하는 편입니다. 😎😎 def solution(a, b): if a==b: return a elif a>b: listup = [ i for i in range(b, a+1)] return sum(listup) else: listup = [ i for i in range(a, b+1)] return sum(listup)
Programmers Lv.1 "정수 내림차순으로 배치하기" 새로운 개념이 하나 포함되어있는 문제입니다! 바로 "내림차순"인데요, 이는 주로 정렬을 할 때 큰수에서 작은수 순서대로 재배열함을 의미합니다. 자세한 내용은 알고리즘의 정렬에 관한 포스팅에서 다루도록 하죠! (왜냐하면 이 문제가 온전한 정렬이라고 볼 순 없거든요..ㅎㅎ) def solution(n): tmp = sorted(str(n), reverse=True) return int("".join(tmp))
Programmers Lv.1 "문자열을 정수로 바꾸기" 앞선 포스팅들에서 여러번 언급했던 기법이 그대로 문제화된 느낌이네요. 문자열과 숫자간의 형변환이 핵심인 문제입니다. 난이도는 가장 쉬운듯하네요. 바로 보시죠. def solution(s): return (-1)*int(s[1:]) if "-" in s else int(s)
Programmers Lv.1 "정수 제곱근 판별" 제곱근에 대한 개념을 언제 배웠는지 까마득하군요,, 아마 중학생..?때로 기억하고 있습니다만 그때 당시 숫자로 표현하던 내용을 프로그래밍 언어로 옮긴것 뿐입니다. 각설하고 내용 보도록 하겠습니다! from math import sqrt def solution(n): if int(sqrt(n)) == sqrt(n): return pow(sqrt(n) + 1, 2) else: return -1