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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import java.util.*;
 
public class baekjoon1347 {
 
    //    static int S;
//    static int F;  //앞으로 한칸
//    static int R;   //오른쪽으로 한칸
//    static int L;   //왼쪽으로 한칸
//위에거는 다음에 하고 방향을 direct로 잡는데 이유는?
    static Pos cur_pos;
    static int direct; //방향 위 0 오른 1 아래 2 왼 3
 
    static class Pos {
        int x;
        int y;
 
        public Pos(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }
 
    static void rotate(char dir) {
        if (dir == 'R') { //R오른쪽으로 이동일때
            ++direct; //오른->아래->왼
            if (direct > 3//왼쪽 보다 큰 수 나오면
                direct = 0//다시 0(위)
        } else if (dir == 'L') { //L왼쪽으로 이동시킬때
            --direct; //왼->아래->오른
            if (direct < 0//0(위)보다 작으면
                direct = 3//다시 3(왼)으로
        }
    }
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
 
        int number = sc.nextInt();
 
        String command = sc.next(); //명령어
        //이동 명령어(F)가 들어오면 현재 위치를 기준으로 해당 방향으로 이동한 좌표를 리스트에 저장한다.
 
        cur_pos = new Pos(00); //처음 좌표를 (0,0)으로 잡음
        direct = 2// 처음 방향을 남쪽으로 (문제에 명시됨)
 
        ArrayList<Pos> poses = new ArrayList<>();
        poses.add(new Pos(00));
 
        int min_x, min_y, max_x, max_y;
        min_x = min_y = max_x = max_y = 0;
 
        for (int i = 0; i < number; i++) {
            //해당 방향으로 이동
            if (command.charAt(i) == 'F') {
                if (direct == 0)
                    --cur_pos.x;
                else if (direct == 1)
                    ++cur_pos.y;
                else if (direct == 2)
                    ++cur_pos.x;
                else if (direct == 3)
                    --cur_pos.y;
 
 
                poses.add(new Pos(cur_pos.x, cur_pos.y));
 
                //최댓값,최솟값 저장
 
                if (cur_pos.x > max_x)
                    max_x = cur_pos.x;
                else if (cur_pos.x < min_x)
                    min_x = cur_pos.x;
                if (cur_pos.y > max_y)
                    max_y = cur_pos.y;
                else if (cur_pos.y < min_y)
                    min_y = cur_pos.y;
 
            } else {   //방향 전환
                rotate(command.charAt(i));
            }
        }
 
        //x,y 각각의 max,min값을 저장 한 뒤, 이 값을 이용해 배열의크기를 정한다.
        //(0,0),(-1,0),(-1,1)로 이동했다고 할 때, 만들어지는 배열의 크기는 (max_x - min_x + 1)=(0-(-1)+1 * (max_y - min_y + 1)=(1-0+1) 2*2 =4이 된다.
        //주어진 조건에서'모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다' 라고 했으므로, 이동한 칸을 중심으로 배열을 만들고 그 중에서 이동하지 않은 칸은
        //벽('#')으로 채워주면 된다.
        int[][] map = new int[max_x - min_x + 1][max_y - min_y + 1];
 
        //가장 왼쪽 위 좌표(0,0)으로 만들기
        for (int i = 0; i < poses.size(); i++) {
            int x = poses.get(i).x + (-1 * min_x);
            int y = poses.get(i).y + (-1 * min_y);
            map[x][y] = 1;
        }
 
        //answer
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[0].length; j++) {
                if (map[i][j] == 1)
                    System.out.print('.');
                else
                    System.out.print('#');
            }
            System.out.println();
        }
    }
}
cs


삼각형의 높이 n과 종류 m을 입력받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오.


 

e3050b66a1b29a01767400d7560a4131_1449726
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.Scanner;
 
public class Main{
 
    public static void main(String[] args){
        int n;
        int sel;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        sel = sc.nextInt();
 
        if(n>100 || n<1)
        {
            System.out.println("INPUT ERROR!");
            return;
        }
        if(sel == 1)
        {
            for(int i=0;i<n;i++){
                for(int j=0;j<=i;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
        else if(sel==2){
            for(int i=0;i<n;i++){
                for(int j=i;j<n;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
        else if(sel == 3){
            for(int i=0;i<n;i++){
                for(int j=i;j<n-1;j++){
                    System.out.print(" ");
                }
                for(int j=0;j<i*2+1;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
        else
        {
            System.out.println("INPUT ERROR!");
            return;
        }
    }
}
cs


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
 
        int s = sc.nextInt();
        int e = sc.nextInt();
 
        if((s>=2 && s<=9&& (e>=2 && e<=9))
        {
            if(s<=e)
            {
                for(int dan=s; dan<=e; dan++){
                    for(int num=1;num<=9;num++){
                        //System.out.print(dan+" * "+num+" = "+ dan*num + "\t");
                        System.out.printf("%d * %d = %2d   ",dan,num,dan*num);
                        if(num%3 == 0)
                        {
                            System.out.print("\n");
                        }
                        System.out.print("\n");
                    }
                }
            }
            else
                {
                    for(int dan=s;dan>=e;dan--)
                    {
                        for(int num=1;num<=9;num++)
                        {
                           // System.out.print(dan+" * "+num+" = "+ dan*num + "\t");
                           System.out.printf("%d * %d = %2d   ",dan,num,dan*num);
                            if(num%3 ==0)
                            {
                                System.out.print("\n");
                            }
                        }
                        System.out.print("\n");
                    }
                }
            }
        
        else{
                System.out.println("INPUT ERROR!");
                }
        sc.close();
    
    }
}
cs


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.Scanner;
 
public class Main {
  
 @SuppressWarnings("resource")
 public static void main(String[] args) {
  int s, e;
   
  Scanner sc = new Scanner(System.in);
  s = sc.nextInt();
  e = sc.nextInt();
   
  if(s > e)
  {
   for(int i = s; i >= e; --i)
   {
    for(int j = 1; j < 10++j)
    {
     System.out.printf("%d * %d = %2d   ",i,j,i*j);
     if(j%3 == 0)
     {
      System.out.println();
     }
    }
    System.out.println();
   }
  }
  else
  {
   for(int i = s; i <= e; ++i)
   {
    for(int j = 1; j < 10++j)
    {
     System.out.printf("%d * %d = %2d   ",i,j,i*j);
     if(j%3 == 0)
     {
      System.out.println();
     }
    }
    System.out.println();
   }
  }
   
 
 }
  
}
 
cs

다른분 풀이 백점 이유는 모르겠따

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
32
33
34
35
36
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int s = sc.nextInt();
        int e = sc.nextInt();
        if((s>=2 && s<=9&& (e>=2 && e<=9))
        {
            if(s<=e)
            {
                for(int num=1;num<=9;num++){
                    for(int dan=s;dan<=e;dan++){
                        //System.out.print(dan+" * "+num+" = "+dan*num +"\t");
                        System.out.printf("%d * %d = %2d   ",dan,num,dan*num);
                    }
                    System.out.print("\n");
                }
            }
            else
            {
                for(int num=1;num<=9;num++){
                    for(int dan=s;dan>=e;dan--){
                        //System.out.print(dan+" * "+num+" = "+dan*num +"\t");
                        System.out.printf("%d * %d = %2d   ",dan,num,dan*num);
                    }
                    System.out.print("\n");
                }
            }
        }
        else
        {
            System.out.println("INPUT ERROR!");
        }
        sc.close();
    }
}
cs




C++풀이 방법

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
32
33
34
35
36
37
38
39
40
41
42
43
44
//직사각형의 마지막 한 점 찾기
//각 점을 이루는 x1,x2,y1,y2의 개수를 세어보면 각각 2개씩 입니다.
//x축 좌표 중 다른값 1개 ,y축 좌표중 다른 값 1개를 찾으면 됩니다.
//조건문, 해시등을 이용해서 구현하면 됩니다.
//xor을 이용해서 간단하게 구현해보는것 먼저하기
//A xor A =0
//A xor A xor B = B를 이용하면 다른 값 1개를 쉽게 구할 수 있습니다.
//0 xor B = B이기 떄문이다. 같은값 xor는 0이 나오고 0이랑 xor하면 나머지 비교된 한 값이 나오게 된다.
//xor은 그냥 or이랑 반대라고 생각하면 딱 맞다
/*
즉, 각 축의 좌표에 대해 xor을 해봅니다.
x1이 두 번 나왔다면
x1 xor x1 xor x2 = x2
y2가 두번 나왔다면
y1 xor y2 xor y2 = y1
이 경우엔(x2,y1)을 return 하면 됩니다.
*/
 
#include<iostream>
#include<vector>
using namespace std;
 
vector<int> pretest3(vector<vector<int>> v){
 
    vector<int> ans = {0,0};
    for(int i=0;i<3;i++){
 
        //정답 배열ans[0]의 x좌표를 나머지 세 좌표와 xor를 해서 (세좌표라 해봤자 어차피 정답배열x좌표가 x1이라고 하면 나머지는 x1,x2,x2라서 x1 xor x1 xor x2 이렇게 된다)
        ans[0] ^= v[i][0]; //a[0](=x1) xor v[0][0](=x1) xor v[1][0](=x2) xor v[2][0](=x2)
        //정답 배열ans[1]의 y좌표를 나머지 세 좌표와xor한다.(y1 xor y1 xor y2)
        ans[1] ^= v[i][1]; //a[0](=y1) xor v[0][1](=y1) xor v[1][1](=y2) xor v[2][1](=y2)
    }
    return ans;
}
int main(){
 
    vector<vector<int>> v;
 
    scanf("%d",v);
    printf("%d\n", pretest3(v));                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    return 0;
}
cs

JAVA풀이 방법

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
32
33
34
35
36
37
38
39
40
41
42
package programmers;
 
public class pretest3{
public static void main(String[] args){
 
    int[][] answer ={{1,4},{3,4},{3,10}};
 
    pretest3 sol= new pretest3();
    System.out.println(sol.solution(answer));
 
}
 
        public int[] solution(int[][] v){
            int x;
            int y;
            //주어진 3개의 좌표중에서 답을 구할 좌표는 나머지 하나가 다른 좌표랑 같은 좌표이다
            //그래서 if문에서 이미 같은 좌표 두개가 나오면 답 x좌표는 나머지 하나의 좌표와 같다. 
           // v[0][0](=x1) xor v[1][0](=x2) xor v[2][0](=x2)
            if(v[0][0== v[1][0]){
                x = v[2][0];
            }else if(v[0][0]==v[2][0]){
                x=v[1][0];
            }else{
                x=v[0][0];
            }
 
            // v[0][1](=y1) xor v[1][1](=y2) xor v[2][1](=y2)
              //주어진 3개의 좌표중에서 답을 구할 좌표는 나머지 하나가 다른 좌표랑 같은 좌표이다
            //그래서 if문에서 이미 같은 좌표 두개가 나오면 답 y좌표는 나머지 하나의 좌표와 같다. 
            if(v[0][1]==v[1][1]){
                y=v[2][1];
            }else if(v[0][1== v[2][1]){
                y=v[1][1];
            }else{
                y=v[0][1];
            }
            int[] answer = {x,y};
            return answer;
        }
    }
 
 
cs


+ Recent posts