CodeSignal 16번 areSimilar 문제풀이
·
알고리즘/CodeSignal
두 문자열에서 한쌍의 문자만을 교환해 같게 만들수있는지 반환하는 문제 def areSimilar(a, b): differentIndex=[] differentCnt=0 for i in range(len(a)): if a[i]!=b[i]: differentCnt+=1 differentIndex.append(i) if len(differentIndex)>2: return False if len(differentIndex)
CodeSignal 15번 addBorder 문제풀이
·
알고리즘/CodeSignal
쉬운 문제입니다. 문자열 배열을 입력받고 *로 액자를 구성해 반환해주면 됩니다. def addBorder(picture): pic=["*"*(len(picture[0])+2)] [pic.append("*"+str+"*") for str in picture] pic.append(pic[0]) return pic 코드도 간단한데요, *를 문자열 길이+2번만큼 반복한 문자열을 제일 먼저 pic에 추가해주고, 리스트 컴프리헨션을 이용해 옆틀을, 마지막으로 처음에 쓰였던 0번째 요소를 추가해 반환합니다.
CodeSignal 14번 alternatingSums 문제풀이
·
알고리즘/CodeSignal
이 문제는 입력 수열에서 0부터 0번째,짝수번째인 수들과 홀수번째의 합을 따로 반환하면됩니다. 예시같은경우 50,60,70이 각각 0,2,4번째고 60,45가 1,3번째죠 def alternatingSums(a): return [sum(a[::2]), sum(a[1::2])] 간단한데요 첫번째 sum은 0번째부터 2칸씩 넘기며 0,2,4,6... 번째 수들을 더하고 두번째 sum은 1번째부터 2칸씩 넘기며 1,3,5,7... 번째 수를 더해 반환합니다. 배열의 슬라이싱에서 step를 이용한 풀이였습니다.
CodeSignal 13번 reverseInParentheses 문제풀이
·
알고리즘/CodeSignal
보기엔 간단한 문제입니다! 안쪽에있는 ()부터 문자열을 뒤집어주며 최종적으로 () 없는 문자열을 반환하면 됩니다. def reverseInParentheses(inputString): input=inputString for _ in range(inputString.count("(")): start=input.rfind("(") end=input[start:].find(")") change=input[start + 1:start+end][::-1] input=input[:start] + input[start + 1:start+end][::-1]+input[start+end+1:] return input 안쪽에 있는 ()의 위치를 찾는게 먼저인데요, 왼쪽에서부터 )를, 오른쪽에서부터 (를 찾으면 안쪽 ( 와..