본문 바로가기
알고리즘/SWEA

[SWEA / 아름이의 돌 던지기 / JAVA → C++]

by KDW999 2023. 5. 8.

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV18-stqI8oCFAZN&categoryId=AV18-stqI8oCFAZN&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=3 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제 접근

막상 풀고나니 자바는 지원을 안해서 GPT에게 자바를 C++로 바꿔달라했다.

 

N의 크기만큼 반복문을 돌면서 던진 거리를 절대값으로 변환

절대값이 기존의 min보다 작다면 min값 교체, min과 같다면 횟수 + 1

반복문 종료 후 min과 횟수 출력

 

JAVA CODE

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException  {
	      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	      StringTokenizer st;
	      int T = Integer.parseInt(br.readLine()); // 테케
	      
	      for(int t=1; t<=T; t++) {
	    	  
	    	  int N = Integer.parseInt(br.readLine());
	    	  
	    	  st = new StringTokenizer(br.readLine());
	    	  
	    	  int count = 1;
	    	  int min = 100001;
	    	  
	    	  for(int i=0; i<N; i++) {
	      	    int absValue = Math.abs(Integer.parseInt(st.nextToken()));
	    		  
	    	    if(min > absValue) {
  	    		   min = absValue;
	    		   count = 1;
	    	    }
	      	    else if(min == absValue) count++;
	    	}
	    	  
	    	  System.out.println("#"+t+" "+ min+" " + count);
	      }
	}
}

 

C++ CODE

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <cmath>

using namespace std;

int main() {
    int T;
    scanf("%d", &T);

    for(int t=1; t<=T; t++) {
        int N;
        scanf("%d", &N);

        int count = 1;
        int min = 100001;

        for(int i=0; i<N; i++) {
            int absValue;
            scanf("%d", &absValue);
            absValue = abs(absValue);

            if(min > absValue) {
                min = absValue;
                count = 1;
            }
            else if(min == absValue) count++;
        }

        printf("#%d %d %d\n", t, min, count);
    }

    return 0;
}

댓글