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

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

계란💕 2022. 5. 11. 19:21

1. 로마 숫자 표기를 정수로 바꾸기

  - map을 이용해서 각각의 문자에 해당하는 값을 함께 넣어준다.

  - s를 chararray로 바꿔서 작은 값을 가지는 키가 앞에 오면 그 값을 마이너스하도록 sum 식을 세운다.

  - 가장 마지막 글자는 더한다.

java
열기

  Note) 실행 결과

 

 

2.  정수를 로마숫자로 바꾸기

  - String 배열과, int 배열을 만들어서 내림차순으로 각각 값을 넣어준다.

  - 900, 400, 40, 4를 뜻하는 CM/ CD/ XL/ IV도 각각 배열에 넣는다.

  - index를 뜻하는 i를 만들어서 num에서 values[i]를 하나씩 빼면서 그에 대응하는 로마숫자를 result에 하나씩 넣는다.

 

java
열기

  Note) 실행 결과

 

 

3. 커서 옮기기 (편집기 구현)

  • L : 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시)
  • D : 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시)
  • B : 커서 왼쪽에 있는 문자를 삭제 (커서가 문장의 맨 앞이면 무시)
  • P x : x라는 문자를 커서 왼쪽에 추가

  -  커서는 문자열에서 편집이 시작되는 기준 위치로 문장의 맨 앞, 맨 뒤, 중간에 위치할 수 있다. 

 

java
열기

  Note) 실행 결과

java
열기

 

 

4. 키로깅 프로그램

  - 특수 작전을 위해 상대방의 PC에 키보드 입력 내용을 얻을 수 있는 키로깅 프로그램을 설치했다.

  - 해당 키로깅 프로그램으로부터는 아래와 같이 특정 값으로 내용이 수신된다.

  • 8 : Backspace
  • 16 : Shift
  • 20 : Caps Lock
  • 32 : Space bar
  • 37 : 키보드 왼쪽 화살표
  • 39 : 키보드 오른쪽 화살표
  • 155: Insert
  • 127: Delete
  • 97~122: 알파벳 소문자 (기본 입력은 소문자 기준, Shift 나 Caps Lock 에 의해 변경)
  • 48~57: 숫자 0~9

  - (이 외의 값은 들어오지 않는다고 가정)

  - 키로깅 프로그램으로부터 수신된 데이터를 원래 내용으로 복구하는 프로그램을 작성하세요.

java
열기

 

  Note) 입출력 예시

java
열기

 

 

5. 사탕 나눠주기

  - N 명의 아이들이 한 줄로 서있다.
  - 각각의 아이들은 점수 표를 가지고 있는데 점수 표에 따라 다음과 같은 규칙으로 사탕을 나누어 줘야 한다.

  • 적어도 1개 이상의 사탕을 나누어줘야 한다.
  • 점수가 높은 아이에게는 바로 옆의 아이 보다는 사탕을 많이 줘야 한다.

  - N 명의 아이들에 대한 점수 표가 ratings 배열에 주어질 때, 나누어 줘야하는 최소한의 사탕 개수를 출력하세요.

java
열기

  Note) 입출력 예시

java
열기

 

 

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