File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import java .util .*;
2+
3+ class Solution {
4+ public int solution (int [] queue1 , int [] queue2 ) {
5+
6+ long total = 0 ;
7+ int size = queue1 .length ;
8+ long sum1 = 0 ;
9+ long sum2 = 0 ;
10+ for (int i =0 ; i <size ; i ++) {
11+ sum1 += queue1 [i ];
12+ sum2 += queue2 [i ];
13+ }
14+
15+ total = sum1 + sum2 ;
16+ if (total % 2 != 0 ) return -1 ;
17+ long target = total / 2 ;
18+
19+ Queue <Integer > q1 = new LinkedList <>();
20+ Queue <Integer > q2 = new LinkedList <>();
21+ for (int i =0 ; i <size ; i ++) {
22+ q1 .offer (queue1 [i ]);
23+ q2 .offer (queue2 [i ]);
24+ }
25+
26+ int moveCount = 0 ;
27+ boolean isSuccess = false ;
28+ while (moveCount <= 3 *size ) {
29+ if (sum1 == target ) {
30+ return moveCount ;
31+ }
32+
33+ int move = 0 ;
34+ if (target < sum2 ) {
35+ move = q2 .poll ();
36+ q1 .offer (move );
37+ sum1 += move ;
38+ sum2 -= move ;
39+ } else if (sum1 > target ) {
40+ move = q1 .poll ();
41+ q2 .offer (move );
42+ sum2 += move ;
43+ sum1 -= move ;
44+ }
45+ moveCount ++;
46+
47+ }
48+
49+ return -1 ;
50+ }
51+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int solution (int storey ) {
3+ int answer = 0 ;
4+
5+ while (storey > 0 ) {
6+ int num10 = storey / 10 ;
7+ int num0 = storey % 10 ;
8+ if (num0 > 5 ) {
9+ num10 += 1 ;
10+ answer += 10 - num0 ;
11+ } else if (num0 < 5 ) {
12+ answer += num0 ;
13+ } else {
14+ if (num10 % 10 >= 5 ) {
15+ num10 += 1 ;
16+ }
17+ answer += num0 ; // 숫자 5
18+ }
19+ storey = num10 ;
20+ }
21+
22+ return answer ;
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int [] solution (int [] sequence , int k ) {
3+ int [] answer = {};
4+
5+ int size = sequence .length ;
6+ int [] sum = new int [size + 1 ];
7+
8+ // 1 2 3 4 5
9+ // 0 1 3 6 10 15
10+ for (int i =1 ; i <=size ; i ++) {
11+ sum [i ] = sum [i -1 ] + sequence [i -1 ];
12+ }
13+
14+ int start = 0 ;
15+ int end = 0 ;
16+ int left = 0 ;
17+ int minLen = size ;
18+ for (int right = 0 ; right < size ; right ++) {
19+ while (left <= right ) {
20+ int rangeSum = sum [right + 1 ] - sum [left ];
21+ if (rangeSum == k ) {
22+ int len = right - left + 1 ;
23+ if (len < minLen ) {
24+ minLen = len ;
25+ start = left ;
26+ end = right ;
27+ }
28+ ++left ;
29+ break ;
30+ } else if (rangeSum > k ) {
31+ left ++;
32+ } else {
33+ break ;
34+ }
35+ }
36+ }
37+
38+ /*
39+ for (int s: sum) {
40+ System.out.println(s + " ");
41+ }
42+ */
43+ return new int [] { start , end };
44+ }
45+ }
You can’t perform that action at this time.
0 commit comments