상반기 공채까지 노리면서 조금 더 역량을 쌓기로 했으나,,
그래도 하반기 다가오니 마음이 급해지는건 어쩔 수 없는 것 같다.
이런저런 코딩테스트 풀고 있는데, 이번엔 카카오 신입공채 1차 테스트!
이 문제는 난이도:하 이다.
http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/링크를 참고하도록 한다.
if/else 문을 써서 노가다를 해도 문제 없을 문제.
최종 지도를 만들고, 자리수가 모자라면 앞에 0을 추가해주는 케이스만 잘 체크해주면 문제 없을 것 같다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=6; int[] arr1= {46,33,33,22,31,50}; int[] arr2= {27,56,19,14,14,10}; int[] arr3=new int[n]; String[] result=new String[n]; for(int i=0; i<n; i++) { arr3[i]=arr1[i]|arr2[i]; String binary=Integer.toBinaryString(arr3[i]); if(binary.length()<n) { binary=String.format("%0"+n+"d", Integer.parseInt(binary)); } binary=binary.replaceAll("1", "#"); binary=binary.replaceAll("0", " "); result[i]=binary; } for(int i=0; i<n; i++) { System.out.println(result[i]); } } }
String.format 을 이용하면 쉽게 삽입할 수 있다.
"%05d" 이면 다섯자리수로 맞춘다는 뜻이다.
비트 연산자, String.format/ String.replace 등을 써봤으면 아주 쉬운 문제일텐데
같은 문제가 또 나오지는 않겠징..
'이론 > 문제풀이' 카테고리의 다른 글
[Codility] Lesson 6- GenomicRangeQuery (0) | 2018.08.12 |
---|---|
[Codility] Lesson6- CountDiv (java) (0) | 2018.08.09 |
[Codility] Lesson5- PassingCars (0) | 2018.08.07 |
[Codility] Lession 4 - FrogRiverOne (0) | 2018.08.02 |
[카카오 코드페스티벌 본선 1] 단체사진 찍기 (C++) (0) | 2018.08.02 |