Skip to content

Commit 25325dd

Browse files
Merge pull request #7 from algorithm-cote-study/yeji/week3
인프런 3주차
2 parents 52c5d6a + 97d8d9a commit 25325dd

27 files changed

+1333
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package sgyj.inflearn.study.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution21 {
6+
7+
public static void main ( String[] args ) {
8+
Solution21 solution21 = new Solution21();
9+
Scanner scanner = new Scanner( System.in );
10+
int n = scanner.nextInt();
11+
int[][] arr = new int[n][n];
12+
for ( int i = 0; i < arr.length; i++ ) {
13+
for ( int j = 0; j < arr.length; j++ ) {
14+
arr[i][j] = scanner.nextInt();
15+
}
16+
}
17+
System.out.println(solution21.solution(n,arr));
18+
}
19+
20+
private int solution ( int n, int[][] arr ) {
21+
int answer = Integer.MIN_VALUE;
22+
int sum1, sum2;
23+
for(int i = 0; i<n; i++){
24+
sum1 = sum2 = 0;
25+
for(int j = 0; j<n; j++){
26+
sum1 += arr[i][j];
27+
sum2 += arr[j][i];
28+
}
29+
answer=Math.max( answer, sum1);
30+
answer=Math.max( answer, sum2 );
31+
}
32+
sum1=sum2=0;
33+
for(int i=0; i<n; i++){
34+
sum1+=arr[i][i];
35+
sum2+=arr[i][n-i-1];
36+
}
37+
answer=Math.max( answer, sum1 );
38+
answer=Math.max( answer,sum2 );
39+
return answer;
40+
}
41+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package sgyj.inflearn.study.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution22 {
6+
7+
static int[] dx = {-1,0,1,0};
8+
static int[] dy = {0,1,0,-1};
9+
public static int solution ( int n, int[][] arr ){
10+
int answer = 0;
11+
for ( int i = 0; i < arr.length; i++ ) {
12+
for ( int j = 0; j < arr.length; j++ ) {
13+
boolean flag = true;
14+
for(int k=0; k<4; k++){
15+
int nx = i+dx[k];
16+
int ny = j+dy[k];
17+
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]){
18+
flag=false;
19+
break;
20+
}
21+
}
22+
if(flag) answer++;
23+
}
24+
}
25+
return answer;
26+
}
27+
28+
public static void main ( String[] args ) {
29+
Solution21 solution21 = new Solution21();
30+
Scanner scanner = new Scanner( System.in );
31+
int n = scanner.nextInt();
32+
int[][] arr = new int[n][n];
33+
for ( int i = 0; i < arr.length; i++ ) {
34+
for ( int j = 0; j < arr.length; j++ ) {
35+
arr[i][j] = scanner.nextInt();
36+
}
37+
}
38+
System.out.println(solution(n,arr));
39+
}
40+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package sgyj.inflearn.study.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution23 {
6+
7+
public static int solution ( int n, int[][] arr ){
8+
int answer = 0, max=Integer.MIN_VALUE;
9+
for(int i = 1; i<=n; i++){
10+
int cnt = 0;
11+
for(int j=1; j<=n; j++){
12+
for(int k=1; k<=5; k++){
13+
if(arr[i][k] == arr[j][k]){
14+
cnt++;
15+
break;
16+
}
17+
}
18+
}
19+
if(cnt>max){
20+
max=cnt;
21+
answer=i;
22+
}
23+
}
24+
return answer;
25+
}
26+
27+
public static void main(String[] args){
28+
Scanner scanner = new Scanner( System.in );
29+
int n = scanner.nextInt();
30+
int[][] input = new int[n+1][6];
31+
for(int i=0; i<n; i++){
32+
for(int j=1; j<=5; j++){
33+
input[i][j] = scanner.nextInt();
34+
}
35+
}
36+
System.out.println(solution( n, input ));
37+
}
38+
39+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package sgyj.inflearn.study.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution24 {
6+
7+
public static int solution ( int n, int m, int[][] arr ){
8+
int answer = 0;
9+
for(int i=1; i<=n; i++){
10+
for(int j=1; j<=n; j++){
11+
int cnt = 0;
12+
for(int k=0; k<m; k++){
13+
int pi=0,pj=0;
14+
for(int s=0; s<n; s++){
15+
if(arr[k][s]==i) pi=s;
16+
if(arr[k][s]==j) pj=s;
17+
}
18+
if(pi<pj) cnt++;
19+
}
20+
if(cnt == m){
21+
answer++;
22+
}
23+
}
24+
}
25+
return answer;
26+
}
27+
28+
29+
public static void main(String[] args){
30+
Scanner sc = new Scanner( System.in );
31+
String[] input = sc.nextLine().split( " " );
32+
int n = Integer.parseInt(input[0]);
33+
int m = Integer.parseInt( input[1] );
34+
int[][] inputValue = new int[m][n];
35+
36+
for(int i=0; i<m; i++){
37+
for(int j=0; j<n; j++){
38+
inputValue[i][j] = sc.nextInt();
39+
}
40+
}
41+
System.out.println(solution(n,m,inputValue));
42+
}
43+
44+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package sgyj.inflearn.study.week3;
2+
3+
import java.util.ArrayList;
4+
import java.util.Scanner;
5+
6+
public class Solution25 {
7+
8+
public static ArrayList<Integer> solution(int n,int m, int[] a, int[] b){
9+
ArrayList<Integer> answer = new ArrayList<>();
10+
int p1=0,p2=0;
11+
12+
while ( p1<n && p2<m ){
13+
if(a[p1]<b[p2]) answer.add( a[p1++] );
14+
else answer.add(b[p2++]);
15+
}
16+
while ( p1<n ) answer.add( a[p1++] );
17+
while ( p2<m ) answer.add( b[p2++] );
18+
return answer;
19+
}
20+
21+
public static void main ( String[] args ) {
22+
Scanner scanner = new Scanner( System.in );
23+
int n = scanner.nextInt();
24+
int[] a = new int[n];
25+
for(int i=0; i<n; i++){
26+
a[i] = scanner.nextInt();
27+
}
28+
int m = scanner.nextInt();
29+
int[] b = new int[m];
30+
for(int i=0; i<m; i++){
31+
b[i] = scanner.nextInt();
32+
}
33+
for(int x : solution(n,m,a,b)) System.out.print(x + " ");
34+
35+
}
36+
37+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package sgyj.inflearn.yeji.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution21 {
6+
7+
public static int solution(int n, int[][] input){
8+
int answer = 0;
9+
10+
for(int i=0; i<n; i++){
11+
int index = 0;
12+
int garo = 0;
13+
int sero = 0;
14+
while (index < n){
15+
garo += input[i][index];
16+
sero += input[index][i];
17+
index++;
18+
}
19+
if(garo > sero && answer < garo) answer = garo;
20+
else if(garo < sero && answer < sero) answer = sero;
21+
}
22+
int compare1 = 0;
23+
int compare2 = 0;
24+
for(int i=0; i<n; i++){
25+
compare1 += input[i][i];
26+
compare2 += input[i][n-1-i];
27+
}
28+
if(compare1 > answer) answer = compare1;
29+
if(compare2 > answer) answer = compare2;
30+
return answer;
31+
32+
}
33+
34+
public static void main(String[] args){
35+
Scanner scanner = new Scanner( System.in );
36+
int n = scanner.nextInt();
37+
int[][] input = new int[n][n];
38+
for(int i = 0; i<n; i++){
39+
for(int j = 0; j<n; j++){
40+
input[i][j] = scanner.nextInt();
41+
}
42+
}
43+
System.out.println(solution( n,input ));
44+
45+
}
46+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package sgyj.inflearn.yeji.week3;
2+
3+
import java.util.Scanner;
4+
5+
public class Solution22 {
6+
7+
public static int solution(int n, int[][] input){
8+
int answer = 0;
9+
for(int i = 1; i<input.length-1; i++){
10+
for(int j=1; j<input.length-1; j++){
11+
int checkValue = Math.max(Math.max( input[i+1][j],input[i-1][j] ),Math.max( input[i][j+1],input[i][j-1] ));
12+
if(input[i][j] > checkValue) {
13+
answer++;
14+
}
15+
}
16+
}
17+
return answer;
18+
}
19+
20+
public static void main(String[] args){
21+
Scanner in=new Scanner( System.in);
22+
int n = in.nextInt();
23+
int[][] input = new int[n+2][n+2];
24+
for(int i = 0; i<=n+1; i++){
25+
for(int j = 0; j<=n+1; j++){
26+
if(i == 0 || j == 0 || i == n+1 || j == n+1){
27+
input[i][j] = 0;
28+
}else{
29+
input[i][j] = in.nextInt();
30+
}
31+
}
32+
}
33+
System.out.print(solution( n,input ));
34+
}
35+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package sgyj.inflearn.yeji.week3;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashMap;
5+
import java.util.HashSet;
6+
import java.util.LinkedHashMap;
7+
import java.util.List;
8+
import java.util.Map;
9+
import java.util.Scanner;
10+
import java.util.Set;
11+
12+
public class Solution23 {
13+
14+
public static void main(String[] args){
15+
Scanner scanner = new Scanner( System.in );
16+
int n = scanner.nextInt();
17+
int[][] input = new int[5][n];
18+
for(int i=0; i<n; i++){
19+
for(int j=0; j<5; j++){
20+
input[j][i] = scanner.nextInt();
21+
}
22+
}
23+
System.out.println(solution( input ));
24+
}
25+
26+
public static int solution(int[][] input){
27+
int answer = Integer.MAX_VALUE;
28+
Set<String> resultGroupingMember = new HashSet<>();
29+
Map<String, Integer> resultMap = new LinkedHashMap<>();
30+
for ( int i = 0; i < input.length; i++ ) {
31+
int[] ints = input[i];
32+
Set<String> groupingMember = findGroupingMember( ints );
33+
if(!groupingMember.isEmpty()){
34+
resultGroupingMember.addAll( groupingMember );
35+
}
36+
}
37+
38+
for(String member : resultGroupingMember){
39+
String[] s = member.split( " " );
40+
String first = s[0];
41+
String second = s[1];
42+
if(resultMap.containsKey( first )){
43+
resultMap.put( first, resultMap.get( first )+1 );
44+
}else{
45+
resultMap.put( first,1 );
46+
}
47+
48+
if(resultMap.containsKey( second )){
49+
resultMap.put( second, resultMap.get( second )+1 );
50+
}else{
51+
resultMap.put( second, 1 );
52+
}
53+
}
54+
55+
int maxCount = 0;
56+
if(resultMap.isEmpty()) return 1;
57+
for(String key : resultMap.keySet()){
58+
if(resultMap.get( key )>maxCount){
59+
maxCount = resultMap.get( key );
60+
answer = Integer.parseInt( key );
61+
}else if(resultMap.get(key) == maxCount && Integer.parseInt( key ) < answer){
62+
answer = Integer.parseInt( key );
63+
}
64+
}
65+
return answer;
66+
}
67+
68+
public static Set<String> findGroupingMember ( int[] groupingMember ){
69+
Set<String> resultMember = new HashSet<>();
70+
for ( int i = 0; i < groupingMember.length; i++ ) {
71+
for(int j = i+1; j< groupingMember.length; j++){
72+
if(groupingMember[i] == groupingMember[j]){
73+
resultMember.add( (i+1)+" "+(j+1) );
74+
}
75+
}
76+
}
77+
78+
return resultMember;
79+
}
80+
}

0 commit comments

Comments
 (0)