이번 문제는 최근 포스팅한 AES 암호화 관련 글이 떠올라 풀어보았다. 문제문제의 요구사항은 영어 대소문자의 index를 가진 배열에문자열 안의 각 문자가 몇 번 포함되었는지 저장하는 것이다. 이 때, C언어를 배웠던 사람이라면 아스키 코드(ASCII Code)를 생각하지 않을까 싶다. 그리고 아스키 코드를 생각해낸 사람이라면 영소문자끼리 영대문자끼리 붙어있단 사실도 기억하고 있을 것이다. 그럼 이제 문제를 해결해보자. 풀이먼저 영대소문자를 모두 포함할 배열을 만들어준다. repeat 함수를 사용해 반복문을 대체했고문자열에서 각 index에 해당하는 문자를 숫자로 변환 후해당 정수 값으로 대소문자를 판별하고 배열 값을 1씩 증가시켜주었다. 그렇게 완성된 배열을 리턴해주면 된다. 실행 결과
오늘 이 문제는 기존에 사용해보지 않은 메소드를 사용해보는 겸 풀어보았다. 이번에 사용한 함수는 코틀린 표준 라이브러리에 있는 함수이다. 문제문제의 요구사항은 간단하다. 문자열 왼쪽의 0을 없애주면 된다. 여기서 문자열 왼쪽을 삭제하면서 자바엔 없는 함수를 사용해봤다. 풀이먼저 0이 몇개나 존재할지 모르기 때문에while문에서 startsWith로 문자열이 0으로 시작하면 문자열 앞의 0을 지워주었다. 그리고 removePrefix의 리턴을 다시 지역 변수로 넣어주었다. 지역 변수로 리턴된 문자열을 다시 넣어주지 않으면answer에 넣어둔 파라미터 값이 변하지 않기 때문에 while문에서 무한루프에 빠질 수 있다. 실행 결과
필요해진 배경이번 기능은 왜 필요했을까? QR코드 스캐너 라이브러리를 사용하는데 알고보니 화면 방향이 가로 고정이었다. 하지만, 내가 필요로 하는 화면 방향은 세로 고정이었다. 해결 방법내가 사용했던 라이브러리를 예시로 보여주겠다. https://github.com/journeyapps/zxing-android-embedded GitHub - journeyapps/zxing-android-embedded: Barcode scanner library for Android, based on the ZXing decoderBarcode scanner library for Android, based on the ZXing decoder - journeyapps/zxing-android-embeddedgithub..