Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코드스테이츠 백엔드
- 프로그래머스
- 싱글톤패턴
- 투포인터알고리즘
- vm인스턴스생성
- 버블정렬
- 백준
- 백준 11659
- 클라우드에서 도커 실행하기
- 인텔리제이
- GCP
- 코딩테스트
- Spring Web MVC
- Spring MVC 동작원리
- 스택
- 성능테스트툴
- 구간합구하기
- 재귀와반복문
- OOP
- List.of
- 재귀함수
- MySQL
- 11659
- 자바
- Spring MVC 구성요소
- Array.asList
- String.valueOf()
- java
- 코드스테이츠
- 알고리즘
Archives
- Today
- Total
순간을 기록으로
[프로그래머스] 내적 본문
문제
https://programmers.co.kr/learn/courses/30/lessons/70128
주의할점
내적의 합이 int의 범위(-21억~ 21억)를 넘을 수도 있으므로 확인한다.
배열의 길이는 1,000이다 즉 10^3이다.
배열 원소의 최댓값은 1,000이다 즉 10^3이다.
내적의 값이 가장 큰 시나리오는 배열의 길이가 10^3이고 배열 a, b모든 원소의 값이 10^3인 경우다.
각 인덱스마다 두 원소값을 곱 결과는 10^6이고 10^3번 반복하니깐 가장 큰 내적의 값은 10^9이다. 0이 9번 붙어있는 값이다. 즉 1,000,000,000이고 10억이다. 따라서 int 자료형을 사용해도 된다.
해결
for(int i=0; i<a.length; i++) {
answer += a[i] * b[i];
}
배열의 길이만큼 반복을 한다. 내적의 경우 두 배열의 길이가 같기 때문에 두 배열 중 아무거나 선택해서 배열의 길이를 구한다. 그리고 같은 인덱스를 가지는 원소의 값을 곱해서 계속 더해준다.
'Problem Solving' 카테고리의 다른 글
[코딩테스트] 괄호문자제거 (0) | 2022.01.05 |
---|---|
[자바] 11729번 하노이 탑 이동 (0) | 2021.12.09 |
백준 자바 2748 피보나치 수2 (0) | 2021.11.12 |
[자바] 3진법 뒤집기 (0) | 2021.11.11 |
[코딩테스트] 상위 n개 레코드 (0) | 2021.11.11 |
Comments