220428_w2_엘리스_구현,수학 - Sunny-W-Park/elice-sw2-algorithms GitHub Wiki

박선우 - #도도새의 업무일지

문제 해석

  • 업무일지A: N일 간 제작한 액세서리 개수 배열
  • 업무일지B: N일 간 제작한 액세서리 개수의 누적 평균 값 배열
  • N: 업무일지의 길이
  • 업무일지B의 내용을 보고 업무일지A를 구하시오

접근

  • i는 배열 idx, 0부터 시작
  • 업무일지B는 A 값들의 누적 평균 값으로, B[i] = (A[i] + sum(A[0:i])) // (i+1) 로 일반화
  • 따라서 A[i] = B[i]*(i+1) - sum(A[0:i])

풀이 과정

  • 길이가 N인 배열 A를 정의
  • i = 0: 첫번째 값과 누적평균은 같으므로 A[0] = B[0]
  • 1 <= i <= N-1: 위의 식에 따라 A[i] 값 저장

백성호 - #절대반지

문제 해석

  • 첫 번째 줄에 모자장수의 별명을 입력 받는다. (알파벳 대문자 1-10자 )
  • 두 번째 줄에 모자장수가 가지고 있는 반지의 개수 N을 입력 받는다. (1-5 사이 숫자)
  • 다음 N줄에는 각 반지에 새겨진 문자열을 입력 받는다. (알파벳 대문자 1-10자).
  • 반지의 문자열을 시계 방향으로 읽었을 때 모자장수의 별명을 포함하는 반지는 모자장수의 반지이다.
  • 주어진 반지들 중 모자장수의 반지 개수를 출력해야 한다.

접근

  • 반지와 별명으로 입력 받는 문자열의 길이는 둘 다 10 이하이다.
  • 반지 문자열을 두 번 반복한 문자열과 별명을 비교했을 경우, 별명이 문자열에 포함되면 모자장수의 반지이다.

풀이 과정

  • 별명, N을 입력 받고, rings라는 빈 배열에 각 반지의 문자열을 두 번 반복한 문자열을 추가한다.
  • 반지의 개수를 셀 cnt라는 변수를 0으로 설정한다.
  • 문자열 안에 문자열을 찾는 find method를 사용하여, 반지 문자열에 별명이 없는 경우 -1을 반환하는 것을 이용하여, find값이 -1 이 아닐 경우 cnt에 1을 더한다.

김재민 - #김박사의 비밀 데이터

문제 해석

  • 업무일지A: N일 간 제작한 액세서리 개수 배열
  • 업무일지B: N일 간 제작한 액세서리 개수의 누적 평균 값 배열
  • N: 업무일지의 길이
  • 업무일지B의 내용을 보고 업무일지A를 구하시오

접근

  • 숫자 무결성을 확인하기 위한 checksum
  • 수를 입력 받을 횟수 N
  • N번 입력받는 각 line은 수
  • N개의 각 수를 모두 더해 10번째 자리까지 숫자를 checksum으로 사용한다.
  • 각 line내 숫자들을 더하는 것이 아님을 주의

풀이 과정

  • N input으로 입력
  • N만큼 input을 받으며 비어있는 list에 append
  • list를 sum을 이용하여 합산
  • 합산 결과를 str을 이용하여 string으로 형변환
  • 형변환한 string을 10번째 글자까지 slice

지의신 - #떡 먹은 떡만이

문제 해석

  • 1의 위치를 찾는 것
  • N == 위치를 바꾼 횟수를 나타내는 자연수
  • x,y == 위치를 바꾼 자리 x와 y

접근

  • 주어지는 입력에서 1이 있으면 위치를 갱신
  • 1번이 마지막으로 위치한 곳의 자리번호를 출력

풀이 과정

  • result를 1로 초기화
  • x 가 1이면 위치정보 result를 y로 갱신
  • y 가 1이면 위치정보 result를 x로 갱신
  • 마지막으로 result를 출력