개발일지 18

코틀린 - 카메라 필터 앱 만들기 - 1(CameraX)

코틀린 시작한지 거의 2주가 되어가는데 최초 목표설정을 1주일로 잡았는데, 그안에 해결하지 못했다.. 생각보다 난관이 많았다.. 문법자체를 완강하는데는 며칠 걸리지 않았는데, 문제는 안드로이드 개발 부분이었다. 아직도 제대로 진행되지 않는다. ㅋㅋ.. 카메라 필터 앱 만들기 목표 1. 거울 어플 만들기 2. 코틀린 안드로이드 OpenCV 적용해보기 3. 카메라 필터(OpenCV) 추가 4. 카메라 어플 만들기 5. 카메라 어플 + 필터(OpenCV) 기능 추가 1. 거울 어플 만들기 많이 구글링하고 찾아봤는데, 결론적으로 안드로이드에서는 Camera2 또는 CameraX를 이용하는 방식이 존재한다. 그리고 카메라 앱은 github에 오픈소스로 존재하더라.(기본아님) 근데 이거 사용하는 방법을 잘모르겠음...

코틀린(Kotlin) - 2

디모의 코틀린 강좌 참고 (링크) 주석 (C++이랑 같음) // , /* */ 구문 종료시 세미콜론 불필요 명칭 작성은 - 클래스는 대문자 (eg: Person) - 변수,함수명칭은 소문자 (eg: calculateRoute) 변수 선언 방법 - val: final 키워드와 동일함 - var: 선언 후 변경 가능 일반 선언 var a_1:Int // 아무것도 선언하지 않아도 됨 대신 warning 표시 뜸 val a_2:Int // const라고해서 에러 뜨지 않음. final 같은 느낌. 첫 초기화 이후 변경 불가능 a_1=1 a_1=2 a_2=1 //a_2=2 불가능 기본 자료형 기본 자료형 var b_1:Byte = 127 // -128~127 var b_2:UByte = 255u // unsign..

코틀린(Kotlin) - 1 (목표 설정)

코틀린을 이용한 개발 계기 - 학부생때 자바를 이용하여 안드로이드 애플리케이션 개발을 한 경험이 있다. - 현재는 자바에서 코틀린으로 넘어가는 추세여서 한번 경험해보자 한다. - 토이 프로젝트 목표 설정 - 안드로이드 스튜디오에서 개발언어 코틀린으로 카메라 애플리케이션을 제작 - 이후 영상처리 기능을 추가 - 진행 과정간에 무지성 복붙이 아닌 기본 문법을 익혀 이해하면서 개발에 임하도록 노력할 것 예상 결과물 - 1차 앱: 거울 - 2차 앱: 카메라 촬영 및 편집 - 3차 앱: 실시간 카메라 필터 기능 추가(Canny Edge Detector), 편집시 Edge Detector, 이진화 정도 과정 1. 코틀린 기초 문법 학습 및 무료 강의 수강 - 2일 2. 코틀린을 이용한 안드로이드 개발 영상 시청 -..

[C# 유니티] 슈팅 게임 실습 - 2

UI 맛보기 - Text와 TextMeshPro가 있는데, TextMeshPro는 TMP라는 네임스페이스 안에 구현되어있는데 - 문제는 TextMeshPro를 멤버변수로 사용할 경우 유니티프로그램 GUI에서 이니셜라이징하려하면 안된다 - 그래서 TextMeshProUGUI라는 걸로 하면 됨 https://codecellar.tistory.com/entry/TextMeshProTMP-public-text-%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%84%A3%EB%8A%94-%EB%B0%A9%EB%B2%95 Unity TextMeshPro(TMP) public text 텍스트로 넣는 방법(레퍼런스 할당) TextMeshPro 오브젝트가 Text에 할당이 안된다. 대부분의 유니티..

[C# 유니티] 슈팅 게임 실습 - 1

강의 영상 https://youtu.be/ETYzjbnLixY?list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b Box Collaider - 피격 범위 Rigid Box - 벽 같은 개념 isTrigger - 겹치는거 방지 발사체 생성 구현시 자리에서 회전하는 문제 해결 각 프리팹 박스 콜라이더 속성에 isTrigger = true 로 변경하면 회전하지 않음. -> 근데 이후에 총알 충돌문제 해결부분에서 isTrigger true로 만들어서 해결됨 각 객체들에 대한 배치 우선순위 관련 https://uheeworld.tistory.com/28 Unity) 유니티에서 배경 뒤로 빼기, 오브젝트가 배경에 묻혀서 안보일 때! 먼저 두가지 방법이 있습니다. 1) sprite render에서..

프로그래머스 - LV1 - 체육복

1번 풀이 1,2,3번 7,14번 실패 알고리즘상 1~ n까지 순회하면서 lost를 순차적으로 처리하고 있기 때문에 문제 발생한 케이스일 확률이 높음. 예를 들어 Lost의 왼쪽 학생이 여분을 가졌는지 체크하는 것을 우선으로 할 경우와 오른쪽 학생이 여분을 가졌는지 우선 체크를 하는지의 차이점에 대한 테스트 케이스 필자는 위와 같이 왼쪽 학생처리 후 오른쪽 학생 처리 하는 식으로 구현을 하였기에 오름차순 Sorting 후 해결 2번 풀이 5,24번 실패 lost 학생과 reserve 학생이 겹칠 수 있다는 것. 이게 무슨 문제인가 싶지만. for(lost) 내에서 reserve 포함 현재 갯수가 1개이면 reserve 체육복을 자신이 입으면 됨. 고로 lost에서 해당 케이스는 패스된다. 끝.

프로그래머스 - LV1 - 신규 아이디 추천

1차 풀이 - std::transform을 이용한 소문자 변환 - 단계별로 적힌 그대로 처리함. - step3는 while str.find(..) { str.replace(..,.)} 으로 루프처리함 - step6은 resize(15) 적용 테스트케이스 5번 틀림 2차 풀이 - 테스트 케이스 5번 처리의 마지막 .이 남으면 제거해주라는거 추가함 제출 케이스 22,23 틀림 3차 풀이 -아래 이걸 잘못 이해함. new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. - 아래 예시 3을 보면 결과가 자릿수만큼 a로 대체되어 new_id가 단계별로 그대로 가져오는게아니라 원본을 다시 사용해야하는 경우가 존재한다고 판단했음. 예3 "=.=" "aaa" - 그게아니라 이후 스텝에 의해 3글자 이상에 ..

프로그래머스 - LV1 - 기사단원의 무기

첫번째 풀이 약수의 갯수 구하기: O(n) 1~n까지 약수 갯수 체크 : O(n) 으로 O(n^2) 라서 시간초과 이슈 발생 총점 62/100 두번째 풀이 시간 반줄이는 방향으로 약수 갯수 구할때 범위 반쪼개서 한번에 구하는 식으로 변경 결국 O(n/2 * n )이기 때문에 역시 동일하게 시간초과 이슈 발생 총점 67/100 세번째 풀이 - 약수 갯수는 소인수분해 후 각 소수들에 대한 지수+1 의 곱인데, 이를 활용하는 방향 검토 - 소수를 저장해서 이용하는 방향으로 검토 - 소수들에 대해서 1~k 까지 m^n승 모두 찾고 약수 갯수 업데이트 하는 방향 검토 = 여기서 도저히 뭔가 방법이 떠오르지 않음. 약수 갯수 구하는데, O(루트n) 시간 걸릴 것 같은데... 네번째 풀이 - 에라토스테네스의 체 ? ..