본문 바로가기

알고리즘/CodeSignal15

CodeSignal 17번 arrayChange 문제풀이 def arrayChange(inputArray): cnt=0 for i in range(len(inputArray)-1): if inputArray[i]>=inputArray[i+1]: cnt+=inputArray[i]-inputArray[i+1]+1; inputArray[i+1]=inputArray[i]+1 return cnt 2020. 2. 3.
CodeSignal 16번 areSimilar 문제풀이 두 문자열에서 한쌍의 문자만을 교환해 같게 만들수있는지 반환하는 문제 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) 2020. 2. 1.
CodeSignal 15번 addBorder 문제풀이 쉬운 문제입니다. 문자열 배열을 입력받고 *로 액자를 구성해 반환해주면 됩니다. def addBorder(picture): pic=["*"*(len(picture[0])+2)] [pic.append("*"+str+"*") for str in picture] pic.append(pic[0]) return pic 코드도 간단한데요, *를 문자열 길이+2번만큼 반복한 문자열을 제일 먼저 pic에 추가해주고, 리스트 컴프리헨션을 이용해 옆틀을, 마지막으로 처음에 쓰였던 0번째 요소를 추가해 반환합니다. 2020. 1. 21.
CodeSignal 14번 alternatingSums 문제풀이 이 문제는 입력 수열에서 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를 이용한 풀이였습니다. 2020. 1. 21.