문제 접근방법 수 N을 CharArray로 받은 후 배열의 순서를 역으로 돌린다. 10진법 이상을 경우 CharArray의 원소가 ASCII 코드 값 65('A') 이상일 경우 원소 값을 ASCII 코드로 변환 후 55를 빼준다. pow함수를 이용해 N제곱을 하여 각 계산된 값을 더해준다. ASCII 코드 표 정답 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net
문제 접근방법 가로, 세로 크기가 각각 100이므로 2차원 배열 [100][100] 을 0으로 초기화 해준다. 주어진 좌표를 기준으로 행의 값을 [x][y] , [x][y+1], [x][y+2] .... [x][y+10] 을 1로 지정하고, 열의 값을 [x][y][x+1][y][x+2][y]....[x+10][y]의 값 또한 1로 지정한다. 그럴 경우 겹치는 사각형의 부분도 1로 지정되어 있으므로 배열의 값을 전부 조회하여 1의 갯수를 세면 넓이의 값을 구할 수 있다. 정답
문제 접근방법 입력된 문자열를 charArray로 받아 각 문자 별 중복되는 인덱스를 List에 넣어준다. 중복된 단어의 위치(List의 원소)와 해당 위치의 이전 위치(List의 원소 -1)이 다른 경우 중복되는 문자가 떨어져 나타난 것을 의미하므로 그룹 단어가 아님을 판별하고 전부 같을 경우 연속으로 나타나는 문자라 판별한다. 또한 중복된 인덱스가 없는 경우(List의 크기가 0일 때) 서로 다른 문자만이 나타난 것을 의미하므로 그룹 단어라 판별할 수 있다. 정답 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z,..
문제 접근방법 Java : Scanner.next(), System.out.println() Kotlin : readLine(), println() (java의 함수도 사용할 수 있다.) 위 언어 별로 각각의 입출력(I/O) 함수가 제공된다. 사용법은 간단하지만 해당 함수는 느린 입출력(Slow I/O)에 해당한다. 그렇기에 BufferedReader와 BufferedWrite를 사용하면 빠른 입출력(Fast I/O)을 할 수 있어 속도면에서 유리하다. Scanner는 왜 느릴까? Scanner의 버퍼는 1 KB를 갖고 있어 버퍼 사이즈가 작기 때문에 빈번히 버퍼를 비워줘야하는 반면 BufferedReader는 8 KB의 버퍼를 갖고 있어 버퍼에 담을 수 있는 입력값이 많습니다. 입력을 받을 때 정규식을..
문제 접근방법 해당 문제는 데이터 범위에 대한 이해도를 바탕으로한다. 입력받는 값을 int 자료형으로 받을 경우 int형의 범위보다 큰 수의 경우 Overflow가 발생한다. 그러므로 더 큰 정수형의 범위를 받는 long long 자료형을 사용해야한다. kotlin의 경우 long 자료형이 64bit인 long long 으로 설정되어 있으므로 long 자료형을 사용하면 된다. 유형 이름 바이트 값의 범위 sort 2 Byte -32,768 ~ 32,767 unsigned sort 4 Byte 0 ~ 65,535 int 4 Byte -2,147,483,648 ~ 2,147,483,647 unsigned int 4 Byte 0 ~ 4,294,967,295 long 4 Byte -2,147,483,648 ~..
문제 접근 방법 해당 문제는 부동소수점 개념애 대해 알고있어야한다. 실수를 표현하는 자료형은 유한한 범위를 가지지만 1/3의 경우 0.3333333333333.... 의 무한소수를 갖는다. Float : 4 Byte(32bit) Double : 8 Byte(64bit) 그렇기에 변수에 실수를 저장 하는 것은 어느정도 정보의 손실이 발생할 수 밖에 없다. (실수 변수는 정확한 값을 가지고 있지 않다.) Float는 10-7 정도의 오차 범위를 가지고 Double은 10-15 정도의 오차범위를 갖는다. 결과적으로 출력이 double 자료형의 소수값으로 출력되어야한다. 정답 Reference https://www.acmicpc.net/blog/view/37 https://www.acmicpc.net/probl..
Freezed 혹은 Json serializable 그 외 annotation을 활용하여 코드 생성하는 경우 특정 함수 혹은 키워드를 사용할 경우 invalid_annotation_target 경고가 나타납니다.대표적으로 json_annotation의 @JsonKey()에서 발생합니다. 프로젝트 전체에 적용하기analysis_options.yaml 파일에 아래 내용을 추가합니다. Referencehttps://github.com/rrousselGit/freezed/issues/488
어떤 패키지인가?Flutter에서 기본적으로 Material Design의 아이콘을 사용합니다. 하지만 Material Icons에 찾는 아이콘이 없거나 더 다양한 형태의 아이콘을 필요로할 한 경우가 있습니다. 그럴 때 Fontawesome에서 제공하는 아이콘을 사용하는 것을 추천합니다. 현재 날짜 기준(23.06.01) 무료로 제공되는 아이콘은 2,020개이며 유료 아이콘 또한 구매 시 사용할 수 있는 장점이 있습니다. 사용법FontAwesomeIcons의 아이콘 사용시 FaIcon 위젯을 사용해야합니다. (Icon 위젯은 모든 아이콘이 정사각형으로 인식하지만 많은 FontAwesomeIcons의 아이콘은 그렇지 않습니다.) https://pub.dev/packages/font_awesome_..
Launcher icon 이란?Android에서의 APP 아이콘을 의미한다. APP의 정체성을 가장 쉽게 노출한다.Flutter를 초창기(Null Safe도 지원하기 전)부터 개발해왔던 나로서 이런 패키지가 생산성을 크게 증가시킨다는 것을 느낍니다.이전엔 Android, iOS의 APP 아이콘을 각각 따로 설정해줬었지만 간단하게 패키지를 사용해 플랫폼 별 아이콘 세팅을 해줄 수 있습니다. 사용법App Icon에 관한 설정을 pubspec.yaml에서 설정하는 법과 따로 파일을 분리해 만드는 법 2가지가 있습니다.pubspec.yaml 에서 설정 Terminal에서 명령어 입력flutter pub get flutter pub run flutter_launcher_icons 파일을 분리해 설정파일 생성 시 ..
MarkDown 이란?Markdown은 일반 텍스트 문서에 서식 요소를 추가하는 데 사용할 수 있는 경량 마크업 언어입니다. 2004년 John Gruber가 만든 Markdown은 현재 세계에서 가장 인기 있는 마크업 언어 중 하나입니다.GitHub에서 사용되는 README.md 파일이 MarkDown으로 작성되었습니다.MarkDown의 파일 확장자 명은 .md 혹은 .markdown을 사용합니다. MakDown에 대한 더 자세한 내용은 MarkDown Guide를 참고바랍니다. 사용법child (단일)에 배치하는 경우MarkDownWidget 을 사용Container, SizedBox 등 같은 child (단일)항목에 배치하는 경우에 사용 children (다중)에 배치하는 경우MarkdownGene..