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를 출력