본문 바로가기
알고리즘/프로그래머스

프로그래머스(C++, JAVA) / level 1 : 서울에서 김서방 찾기

by clean_h 2022. 3. 30.
728x90

level 1 : 서울에서 김서방 찾기

https://programmers.co.kr/learn/courses/30/lessons/12919?language=java 

 

코딩테스트 연습 - 서울에서 김서방 찾기

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니

programmers.co.kr

 

🎯 코드(C++)

#include <string>
#include <vector>

using namespace std;

string solution(vector<string> seoul) {
    string answer = "";
    for(int i=0; i<seoul.size(); i++){
        if(seoul[i] == "Kim"){
        	return "김서방은 " + to_string(i) + "에 있다";
        }
    }
    return answer;
}

 

🎯 코드(JAVA)

class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        for(int i=0; i<seoul.length; i++){
           if(seoul[i].equals("Kim")){
               return "김서방은 " + i + "에 있다";
           } 
        }
        return answer;
    }
}

 

🎯 설명

정수를 문자열로 바꾸기

  • int num = 1;
  • C++ : to_string(num);
  • JAVA : Integer.toString(num);

String 비교

  • string s = "KIM";
  • C++ : s == "KIM";
  • JAVA : s.equals("KIM");

 

JAVA와 C++ 속도 비교(C++보다 자바가 느린 이유)

java(왼쪽), C++(오른쪽)

두 언어의 속도를 비교한 결과 매우 많이 차이나는 것을 확인할 수 있다.

C++보다 자바가 느리다는 것은 알았지만 이번 문제에서는 특히 느리다.

 

C++보다 자바가 느린 이유는 다음 링크에 나와있다.

https://sungpi.postach.io/post/wae-hangsang-jabajavaneun-c-boda-neuringa

 

왜 항상 자바Java는 C++보다 느린가?

이 글은 Dejan Jelovic님의 글을 번역 한 글입니다. 수 많은 오역이 있을 수 있습니다. 피드백 부탁드립니다! “자바Java는 높은 능률Performance을 가졌다. 그럭저럭 높은 능률. 그리고 그럭저럭 이란 느

sungpi.postach.io

결론적으로 C++는 기계어에서 바로 실행되어 상대적으로 Bytecode에서 다시 컴파일하는 JAVA보다 실행속도가 빠르다.

 

 

자바와 C++의 차이는 다음에 더 자세히 알아보도록 한다. 

 

 

728x90

댓글