본문 바로가기

코딩테스트22

다트 게임 String에서 원하는 정보를 Parsing하는 문제이다. 입력 형식이 점수,보너스,옵션(선택)인 문자열이 붙어서 나열되어있다. 이때 고려해야 하는 점은 점수가 0~9까지는 1자리 이지만 10까지 고려해야한다는 점(1이나왔지만 바로 다음 문자가 보너스가 아닐 수도 있음) 그리고 옵션이 항상 있는 것은 아니라는 점이다. 이 문제를 해결하기 위해 점수 1세트를 클래스로 정의하고 먼저 Parsing을 시도하였다. class Score { int score; char bonus; char opt; Score(){ score = 0; bonus = 'S'; opt = 'N'; } } 문자열에서 점수를 얻어오는 함수이다. public int getScore(int start, String str) { int sco.. 2020. 3. 22.
비밀지도 간단한 문제다! 사실상 10진수을 2진수으로 바꾸는 것이 핵심인 문제라고 생각되어진다! 필자는 가독성이 좋은 코드를 좋아하고 책 읽듯(?) 해석하고 코딩하기 때문에 요구 사항을 그래도 코드로 작성해보았다. 실제로 10진수를 2진수로 바꿀 때 계속 2로 나누어 나머지가 생기면 1로 적용하고 나머지가 없다면 0으로 적용하는 변환법을 사용하였다. 문제에서는 1인 경우 벽(#)이고 0인 경우는 공백( )이기 때문에 해당 내용으로 채워주었다. 위의 지도1의 예시처럼 9인 경우 2진법으로 1001으로 길이가 4인데 실제 벽은 5칸이므로 왼쪽에 공백으로 길이를 맞춰주어야한다.(물론 안맞추고 풀 수 있지만 맞춰주는 것이 편해서 맞춰주었다.) 그래서 while문을 통해 길이가 짧은 경우 길이를 맞춰주었다. 2진수로 변환.. 2020. 3. 21.