2019년 4월 5일 금요일

Hackerrank Day 7 Arrays / Day 8 Dictionaries and Maps






알고리즘 연습 사이트
www.hackerrank.com


Day 7:Arrays

7일차 문제는 간단하였다.
배열에 들은 데이터를 역순으로 다시 출력하라는 문제였다.
역순으로 출력하기 위해 배열의 length의 -1 부터 시작하여 0이 될때까지 i를 감소시키면서 loop를 반복하면서 배열의 값을 뒤에서부터 출력해주면 된다.

for(int i = n-1; i>=0 ; i--){
    System.out.print(arr[i]);
    System.out.print(" ");
}


Day 8:Dictionaries and Maps

자바에서 Map은 key와 value의 쌍으로 데이터를 저장하는 자료구조이다.
사전을 떠올려보면 된다.
동일한 key에 대해 기존의 value를 교체 할 수도 있는데,
map.put("Hi","Bye"); 와 같이 key,value를 저장한 후 기본적으로 map.get("Hi"); 는 Bye값을 리턴하게 된다.
이런 상태에서 다시 map.put("Hi","Bye!!"); 를 넣으면 Hi라는 키값의 value가 Bye!!로 교체되게 된다.

8일차 문제는 전화번호부를 만드는 것이다. 이름을 key, 전화번호를 value로 잡고 map 에 저장한 후에 키값을 이용해 전화번호의 존재 여부를 체크한다.


Scanner in = new Scanner(System.in);
int n = in.nextInt();
Map<String,Integer> map = new HashMap<String,Integer>();
for(int i = 0; i < n; i++){
 String name = in.next();
 int phone = in.nextInt();
 map.put(name,phone);
}
while(in.hasNext()){
 String s = in.next();
 if(map.get(s) == null){
  System.out.println("Not found");
 }else{
  System.out.println(s+"="+map.get(s));
 }
}
in.close();

댓글 없음:

댓글 쓰기