[코딩테스트] [2840] 행운의 바퀴 & [2817] ALPS식 투표
·
알고리즘/Brute Force
행운의 바퀴시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초128 MB93722424171723.798%문제상덕이는 최근에 행운의 바퀴를 구매했다. 상덕이는 바퀴의 각 칸에 알파벳 대문자를 아래 그림과 같이 적었다.바퀴에 같은 글자는 두 번 이상 등장하지 않는다. 또, 바퀴는 시계방향으로만 돌아간다. 바퀴 옆에는 화살표가 있는데, 이 화살표는 항상 한 곳을 가리키고 있으며, 돌아가는 동안 가리키는 글자는 바뀌게 된다. 위의 그림에서는 H를 가리키고 있다.상덕이는 바퀴를 연속해서 K번 돌릴 것이다. 매번 바퀴를 돌릴 때 마다, 상덕이는 화살표가 가리키는 글자가 변하는 횟수와 어떤 글자에서 회전을 멈추었는지를 종이에 적는다.희원이는 상덕이가 적어놓은 종이를 발견했다. 그 종이를 바탕으로 상덕이가 ..
[Flutter] URL Navigation(with Go_router) 개발 정리
·
Flutter
플러터로 개인 프로젝트를 개발 중에 있는 상황입니다.추후 채팅 작업이 들어갈 화면 이외의 모든 화면의 UI 작업을 완료한 상황입니다.그래서 Navigation을 연결하는 작업을 진행하였습니다!Go_router를 사용하여 URL Router 연결 작업을 정리 하고 한 번 더 학습하기 위해서 글을 작성합니다! 👍기존 UI Design 작업을 진행하면서 간단한 push 방식과 List를 활용하여 Navigation 연결을 진행하였습니다. 하지만 push 방식은 multi platform 지원이 완벽하지 않는 상황이고 다양한 상황에 대처할 수 있고 딥링크에도 URL path형식이 더 알맞다고 생각하여 GoRouter를 사용하였습니다..Push & PopGo 방식을 알아보기전에 기존에 사용했던 Push 와 Po..
[코딩테스트] [10250] ACM호텔 & [1730] 판화
·
알고리즘/Brute Force
[10250] ACM호텔시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB206413709675986933.316%문제ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다.문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H..
[코딩테스트] [11068] 회문인 수 & [3085] 사탕게임
·
알고리즘/Brute Force
회문인 수시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB47662414200154.331%문제어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력받았을 때, 이 수가 어떤 B진법 (2 ≤ B ≤ 64)으로 표현하면 회문이 되는 경우가 있는지 알려주는 프로그램을 작성하시오. B진법이란, 한 자리에서 수를 표현할 때 쓸 수 있는 수의 가짓수가 B라는 뜻이다. 예를 들어, 십진법에서 B는 10이다.입력입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T..
[코딩테스트] (완전탐색,시뮬레이션) & [10448] 유레카 이론 & [11005] 진법 변환2
·
알고리즘/Brute Force
완전탐색즉 무식하게 모든 케이스를 다 시도해보는 것문제해결의 가장 기본적인 방법정답률 100% 보장완전탐색이란 모든 경우의 수를 시도한다. 모든 경우의 수를 체계적으로 검사할 수 있도록 설계해야 함.문제가 요구하는 바를 이해하고, 정확히 구현할 수 있어야 한다.가장 쉽고 간단한 접근효율을 생각하지 않기 때문에 문제의 크기가 작으면 유용하다.문제의 크기가 클수록 시간/공간복잡도가 늘어나 적용이 어려울 수 있다.완전한 정답이 되지 못하더라도 문제를 이해하거나 테스트케이스를 확인하기 위한 용도로 적용해볼 수 있다.부분점수 문제라면 전체를 풀지 못해도 작은 데이터에 대한 점수를 얻을 수 있다.선형 완전탐색, 비선형 완전탐색등이 있으나 아직은 선형탐색만시뮬레이션문제에 주어진 상황을 그대로 진행하며 해결해보는 기법..
[코딩테스트] [10989] 수정렬하기3 & [3273] 두수의합
·
알고리즘/Array
수 정렬하기 3시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율5 초 (하단 참고)8 MB (하단 참고)324390777255931523.852%문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.출력첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.문제풀이이 문제는 저번에 풀었던 줄세우기와 유사한 문제로 입력받은 값을 배열로 받아 정렬을 해주는 문제이다.이 문제의 시간복잡도와 공간복잡도를 생각해보자.시간복잡도 & 공간복잡도시간 제한은 5초이다. 만약 저번 줄세우기 문제를 풀었던 ..
[코딩테스트] [1236] 성지키기 & [10431] 줄세우기
·
알고리즘/Array
성지키기문제영식이는 직사각형 모양의 성을 가지고 있다. 성의 1층은 몇 명의 경비원에 의해서 보호되고 있다. 영식이는 모든 행과 모든 열에 한 명 이상의 경비원이 있으면 좋겠다고 생각했다.성의 크기와 경비원이 어디있는지 주어졌을 때, 몇 명의 경비원을 최소로 추가해야 영식이를 만족시키는지 구하는 프로그램을 작성하시오.입력첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다.출력첫째 줄에 추가해야 하는 경비원의 최솟값을 출력한다.문제풀이1. 각 행과 열에 경비원이 있는지 확인하기일단 2차원 배열로 N*M으로 구성된 칸을 만들어보자 그리고 경비원을 넣어주어 ..
[Flutter] DynamicTabBar 트러블 슈팅
·
Flutter
트러블 등장개인 프로젝트 풀밭을 개발하며 CampusView의 UI와 기능을 개발하였는데 문제가 생겼다. 자세한 개발 내용은 위의 링크를 누르면 볼 수 있다.CampusView는 DynamicTabBar on Scroll으로 Scroll과 TabBar를 서로 연동하여 Tab을 눌렀을 때 자동으로 스크롤이 되거나 혹은 스크롤을 하였을때 Tab이 자동으로 변경되는 기능이 있다.이 때 발생한 문제는 Tab을 눌러 스크롤이 자동으로 설정된 값을 스크롤 될 때 다른 Tab을 누르게 되면 scrollToIndex함수가 중복 실행이 되어 코드가 꼬이는 문제가 발생하였다. 한 번 어떤 상황인지 화면을 봐보자.예시 화면스크롤 이동이 끝난 후 Tab을 눌러 잘 작동 되는 모습 , 스크롤 이동이 끝나기 전 Tab을 눌러 오..
[코딩테스트] [1157] 단어 공부 & [1543] 문서검색
·
알고리즘/String
단어 공부문제알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.입력첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.출력첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.문제 풀이문자열을 대문자로만 입력 받기Scanner 클래스와 next() 메서드를 사용하여 문자열을 입력 받는다.import java.util.Scanner Scanner sc = new Scanner(System.in); String input = sc.next().toUppe..
[코딩테스트] [2744]대소문자 바꾸기 & [1919]애너그램 만들기
·
알고리즘/String
코딩테스트 준비JAVA로 코딩테스트를 준비하기로 하였다.JAVA만 코딩테스트를 보는 회사가 많다. 내 시장성 가치를 올리기 위해 수요가 많은 시장을 선택한다.추후 안드로이드 개발도 관심이 있는데 코틀린이 자바와 완전한 상호운용이 가능하고 구문 전환이 용이하므로 자바 개발자에게 매력적이라고 한다.공부는 인터넷 강의에 나와있는 백준 문제대로 풀이를 하고 하루에 한 번씩 같이 코딩테스트를 공부하는 스터디원분과 손코딩으로 작성하며 문제풀이를 설명하는 방식이다.[2744] 대소문자 바꾸기문제영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.입력첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다...
[Flutter] Dynamic TabBar on ScrollView & NaverMap URL Scheme 사용 방법
·
Flutter
CampusView 기획Flutter를 사용해서 SESAC 커뮤니티 어플을 개발 진행중인데 캠퍼스의 정보들을 볼 수 있는 CampusView를 아래 이미지와 같이 기획하였다.CampusView는 DynamicTabBar로 구성되어 있어 기능을 개발 하였다.DynamicTabBar의 기능사용자가 스크롤을 할 때 감지하여 Tab이 자동으로 이동사용자가 Tab을 눌렀을 때 설정한 곳을 자동 Scroll DynamicTabBar 개발일단 Tab을 눌렀을때 해당 위치로 이동하려면 Tab을 관리하는 위젯과 클래스를 찾아야한다.그렇게 해서 나온 것이 ScrollController 와 DefaultTabController!https://flutter.github.io/assets-for-api-docs/assets/m..
[Flutter] WhiteScreen 해결(iPhone 무선빌드) & Load Sequence Flutter UI
·
Flutter
Flutter 로딩 시퀀스를 알아보게 된 계기Flutter 개인 프로젝트를 진행하면서 무선 실기기 빌드를 종종 사용하였는데 AndroidStudio로 무선 빌드를 하면 XCode가 켜지고 XCode에서 Run이 실행된다. 이 때 실기기에서 하얀 화면만 나오는 문제가 있었다. XCode로만 무선 빌드를 하면 문제없이 내가 만든 뷰를 테스트 할 수 있었다..!그래서 왜 XCode로 빌드하면 문제없이 빌드가 되고 AndroidStudio로 빌드를 하면 하얀 화면이 나오는지 찾아보게 되었다!처음에든 생각은 플러터로 코드를 작성한 후 iOS나 Android로 어떻게 화면이 그려지는 것일까 생각이 들었다.그래서 공식 문서를 찾아 플러터가 어떻게 UI를 표시하는지 플러터 Load sequence를 찾아보았다.플러터 ..
[Swift] Memory Leaks 해결
·
SwiftUI/개발
iOS 앱 개발 중 앱이 예상치 않게 멈추거나 강제 종료되는 문제는 종종 발생할 수 있습니다.이러한 문제의 원인은 메모리 부족, 메모리 누수, 교착 상태, 경쟁 상태 등 다양합니다.이런 상황에서는 프로파일링과 디버깅이 필요합니다. 에러가 로그를 통해 나타나면 로그 분석으로 문제를 해결할 수 있지만, 로그 없이 문제가 발생하는 경우 프로파일링을 통해 메모리 사용량, 성능 이슈, 실행 흐름 등을 분석하여 문제의 원인을 정확히 파악하는 것이 가장 효과적입니다.1. XCODE 프로파일링 XCODE 프로파일링이란 앱 성능 및 리소스 사용을 분석하고 최적화하는 과정을 뜻합니다. 앱이 실행하는 중에 발생하는 이슈에 대해서 모니터링 할 수 있고 메모리누수, 에너지효율성, 메모리할당 과정 등을 전반적으로 훓어볼 수 있습..
[백준/Gold IV] 오큰수 - 17298
·
알고리즘/백준
[Gold IV] 오큰수 - 17298문제 링크 분류자료 구조, 스택 문제 설명크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수..
[백준/Silver II] 쇠막대기 - 10799
·
알고리즘/백준
import Foundationlet input = readLine()!var stack = [Character]()var pieces = 0let characters = Array(input)for i in 0..문제 설명여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다.아래 그림은 위 조..