오전시간 내내 문제 풀이를 했는데 배열의 값을 비교해서 출력해주는 작업에서 막혀서 풀어낼수가 없었다.
시간은 오래들고 결과는 없어서 실망스러웠다..
풀이
class Solution {
public int[] solution(int[] answers) {
int[] student1 = {1,2,3,4,5};
int[] student2 = {2,1,2,3,2,4,2,5};
int[] student3 = {3,3,1,1,2,2,4,4,5,5};
int[][] students = {student1, student2, student3};
int[] scores = new int[3];
for (int i = 0; i < answers.length ; i++) {
for (int j = 0; j < scores.length; j++) {
if(answers[i] == students[j][(i % students[j].length)]) {
scores[j]++;
}
}
}
int maxNum = 0;
int winnerNum = 0;
for (int i = 0; i < scores.length ; i++) {
if(scores[i] > maxNum ) {
maxNum = scores[i];
winnerNum =1;
}else if(scores[i] == maxNum){
winnerNum++;
}
}
int[] answer = new int[winnerNum];
int index = 0;
for (int i = 0; i <scores.length ; i++) {
if (scores[i]==maxNum) {
answer[index++] = i+1;
}
}
return answer;
}
}
Isolation이 필요한 이유 (추가정리)
질문사항 정리
Transaction을 Javax로 임포트한뒤에 propagation을 하려니 안되서 강의를 다시보니 TxType으로 뜨던데 이게 spring Transaction에 propagation과 같은건가요?
MANDATORY는 트랜잭션이 필수인데 자기자신이 트랜잭션을 생성하는게 아닌 부모 트랜잭션을 사용한다는점에서 REQUIED와 다른건가요?
isolation 중에 repeatable_read와 serializable 설명하실때 read나 read&write lock을 건다고하셨는데 lock을 거는게 db에서 하나의 트랜잭션이 진행되고있으면 다른 트랜잭션이 접근하지 못하게 하는건가요?
락이 걸릴때는 컬럼 단위로 걸리는건가요? lock이 걸리는게 어떻게 걸리는지 궁금합니다
또한 lock을 걸린동안 접근하려고 했던 트랜잭션인 진행중이던 트랜잭션이 끝날때까지 대기했다가 해당 트랜잭션을 실행하게 되는건지 아니면 트랜잭션이 실행되지 않는지 궁금합니다
Entity 설명해주실때 ddl에 사용되는 어노테이션은 이미 서비스가 존재하는 경우가 많기 때문에 잘사용하지 않으신다고 하셨는데
만약 서비스를 처음 개발해서 디비를 생성해야 되는경우는 보통 어떤 방식으로 생성해주게 되나요??( 실제로 할경우는 별로없겠지만 궁금합니다~)