자료구조와 알고리듬 With Java/[zerobase] Algorithm

Part 01. 연습문제 풀이 3 [zerobase]

계란💕 2022. 5. 12. 15:03

1. 배열의 숫자들 중복 제거해서 나타내기

  - 단, 새로운 배열이나 set사용은 금지

  - 중복 제거된 원수의 개수를 나타내는 변수 idx를 선언한다.

  - nums배열에 새롭게 값을 넣을 때는 nums[idx++]을 꼭 후치로 넣어준다.

java
열기

  Note) 실행 결과

 

 

2. 주어진 nums 배열에서 두 번 나타나는 모든 정수의 배열을 반환하는 프로그램을 작성하세요.

  • nums 배열은 [1, n] 범위의 정수로 이루어져 있다.
  • 각 정수는 한 번 또는 두 번 나타날 수 있다.

  - 반환을 위한 메모리 공간 외에 추가 적인 배열 사용은 하지 않는다.

  - 배열의 각 원소에 대해, 

    새로운 index라는 변수를 만들어서 대응하는 값의 원소의 부호를 바꿔준다.

    원소를 보다가 음수가 나오면 전에 한 번 나온적이 있으므로 list에 add해준다.

 

java
열기

  Note) 실행 결과

java
열기

 

?????????

3. 정렬된 정수형 배열 arr 이 주어졌을 때, 다음을 구하는 프로그램을 작성하세요.

  • arr 과 함께 k 와 x 가 주어진다.
  • k 는 개수, x 는 기준 값이다.
  • x 와 절대 값 차이 기준으로 가까운 수를 k 개수 만큼 정렬된 순서로 출력하세요.
  • 절대 값 차이가 같을 때는 숫자가 작은 것이 먼저 출력되도록 한다.
java
열기

  Note) 입출력 예시

java
열기

 

 

4. MxN 행렬 정보가 2차원 정수형 배열 matrix 에 주어지면, 나선형 모양으로 출력하는 프로그램을 작성하세요.

  - rowEnd => rowStart 인 경우에는 if(rowEnd >= rowStart)문이 필요하다. 

  - colEnd => colStart: if(colEnd >= colStart)문이 필요하다.

java
열기

  Note) 입출력 예시

java
열기

 

 

5. 벽 사이사이의 빈 공간에 담을 수 있는 물의 총량

  - n개의 정수형 데이터가 height 배열에 주어졌다. height 배열의 각각의 원소는 아래 그림과 같이 각 벽에 대한 높이를 의미한다.

  - 이와 같이 높이 값들이 주어졌을 때, 벽 사이사이의 빈 공간에 담을 수 있는 물의 총량을 출력하세요.

java
열기

  Note) 입출력 예시

java
열기

 

 

 

출처: https://zero-base.co.kr/