'Algorithm > 필수 문법' 카테고리의 다른 글

파이썬3 필수 문법  (0) 2019.07.19
C++ sort  (0) 2019.04.23
코드 예쁘게 붙여 넣기  (0) 2019.04.09
Python, Java, C++ 알고리즘 문제 풀 때 기본 문법 차이  (0) 2019.04.05
Posted by 공놀이나하여보세
,

오늘은 LeetCode를 풀 때 필수 문법에 대해 정리해 보겠습니다.

다양한 언어를 접했던 관계로 LeetCode를 풀 때 상황에 따라 언어를 바꾸다 보니 저도 헷깔려서 정리해 봅니다.

 

(1) Java

a. System.out.println("a + b = " + c);

b. class{

}

c. int 선언 시 new를 해야함

int test[][] = new int[1000][1000];

d. 배열의 길이

test.length

test[0].length

 

(2) Python2.x

a. print "a + b = %d", (c);

b. 

c. 

d. 리스트의 길이

len(test)

len(test[0])

e. for문

for i in range(len(nums)):

 

(3) C++

a. cout << "a + b = " << c << endl;

b. class 끝에 세미콜론을 붙인다.

class{

}; 

c. 벡터 선언

// assumes using std::vector for brevity

vector<vector<int>> matrix(RR, vector<int>(CC));

또는

vector<vector<int> > matrix;

for(int i = 0; i<RR; i++) {

    vector<int> myvector;

    for(int j = 0; j<CC; j++)

   {

        int tempVal = 0;

        cout<<"Enter the number for Matrix 1";

        cin>>tempVal;

        myvector.push_back(tempVal);

    }

    matrix.push_back(myvector);

}

 

d. 벡터의 길이

test.size()

test[0].size()

생각날 때마다 계속 업데이트 하겠습니다.

'Algorithm > 필수 문법' 카테고리의 다른 글

파이썬3 필수 문법  (0) 2019.07.19
C++ sort  (0) 2019.04.23
코드 예쁘게 붙여 넣기  (0) 2019.04.09
구글 코딩 스타일  (0) 2019.04.09
Posted by 공놀이나하여보세
,

회사 역량 시험은 C, C++, Java 만 가능한데, Java는 재귀 함수 사용 시 메모리 문제가 발생할 수 있다고 해서,

C++로 하기로 결정!!

 

Number of Islands 를 java로 다시 풀어보았다.

이전과 같이, DFS : Depth First Search 깊이 우선 탐색 알고리즘이며 재귀함수 호출 방식이다.

C++ 문법이 헷깔려서 다른 사람 코드를 언뜻 봤는데, 알고리즘이 좋아서 나도 참조해 보았다.

class Solution {
public:
    int r_length = 0;
    int c_length = 0;
    
    void findOne(vector<vector>& grid, int r, int c){
        if(r < 0 || r >= r_length || c < 0 || c >= c_length)
            return;
        
        if(grid[r][c] == '0')
            return;
        
        grid[r][c] = '0';
        
        findOne(grid, r, c-1);
        findOne(grid, r, c+1);
        findOne(grid, r-1, c);
        findOne(grid, r+1, c);
        
        return;
    }
    int numIslands(vector<vector>& grid) {
        r_length = grid.size();
        
        if(grid.size() == 0)
            return 0;
        c_length = grid[0].size();
        
        int cnt = 0;
        for(int i = 0; i < r_length; i++){
            for(int j = 0; j < c_length; j++){
                if(grid[i][j] == '1'){
                    cnt++;
                    findOne(grid, i, j);
                }
            }
        }
        
        return cnt;
    }
    
};

출처 : https://leetcode.com/problems/number-of-islands/discuss/266379/(98.93-100)-DFS-C%2B%2B

Posted by 공놀이나하여보세
,