본문 바로가기

전체 글51

[TIL] 리스트 압축 문제* 문제문자 배열 chars를 압축합니다. 새로 만들어질 문자열을 s라고 가정했을 때,연속적으로 반복되는 각 문자 그룹에 대해 그룹의 길이가 1이면 해당 문자를 s에 추가하고, 그렇지 않으면 해당 문자와 해당 그룹 길이를 각각 s에 추가합니다. **문자열 s는 별도로 반환하지 않고 입력 문자 배열 chars에 저장해야 합니다. 단, 함수의 반환값은 새 문자열의 길이(정수)를 반환합니다.**그룹의 길이가 10보다 길면 (2자리 이상이면) 분할하여 저장합니다. 일정한 추가 공간만 사용하는 알고리즘을 작성해야 합니다.* 예시1. 입력 : ["a","a","b","b","c","c","c"] 변환된 문자열(chars) : ["a", "2", "b", "2", "c", "3"] 출력 : 6 설명 : 문자열.. 2024. 11. 12.
[TIL]플러터 기초 환경 설정을 하며 테스트를 해봤는데vs code에서 플러터를 실행시키려는데 에뮬레이터 반응이 없고Error: Dart library 'dart:ui' is not available on this platform. import 'dart:ui' show lerpDouble;이러한 오류만 떴다.[해결법]vs code 터미널에서 아래 코드를 입력해주면 된다.flutter run  플러터 기초main.dart 구성 요소1)widget-ui 구성하는 기본 요소-StatelessWidget 과 StatefulWidget이 있으며 build함수 내에서 구성을 dart코드로 작성2)MaterialApp-앱의 기본적인 구조와 디자인을 잡아주는 위젯-Flutter 앱의 최상단에 선언해 사용3)MaterialApp vs C.. 2024. 11. 11.
[TIL] 과제 보충 내 과제 코드와 해설 코드를 비교해보며 느낀 점은dart의 고차함수를 잘 사용을 못하고 있다는 것이었다.예를 들어 전투 결과를 저장할 때 승리인지 패배인지를 판단하는 함수를 if(gameResult==true){ writeFile('승리'); }else{ writeFile('패배'); }이렇게 작성했는데 고차함수로 작성하면 final result = victory ? '승리' : '패배';이렇게 간단하게 작성할 수 있었다.완전 일맥상통하는 코드는 아니어도 잘 활용한다면 코드도 간결해지고 가독성도 좋아질 것 같다. 또한 로직도 내가 복잡하게 생각한 게 많았다. Monster getRandomMonster() {.. 2024. 11. 8.
RPG 전투 게임 캐릭터와 몬스터가 전투하는 게임 구현하기기능1) csv 파일에서 캐릭터와 몬스터의 체력, 공격력, 방어력 설정값 불러오기2) 사용자에게 입력받아 공격 or 방어 수행하기3) 몬스터를 처치했을 경우 다음 몬스터와 전투 진행하기4) 전투 결과 파일에 저장하기전투기능1) 사용자가 공격할 경우 몬스터의 체력을 사용자의 공격력만큼 감소2)몬스터는 공격만 가능코드 작성 중 발생한 문제점한 메서드의 길이가 너무 길다. 초반에 아래와 같이 작성을 했는데 메서드의 코드가 길어도 너무 길다..가독성도 떨어지고 내가 선언한 변수가 뭔지 헷갈리고 꼬이는 지경에 이르렀음. 문제의 코드battle(): 전투 진행 메서드 //전투 진행 메서드 Future battle() async{ bool characterItem = .. 2024. 11. 7.
[TIL] 큐&연결리스트 Queue: 선입선출 방식으로 데이터 처리하는 자료 구조.1)큐생성Queue queue = Queue();2)큐에 값 추가queue.add(1);3) 큐 다루기queue.removeFirst(); //앞에서 삭제queue.first; //앞쪽 값 반환queue.last; //뒤쪽 값 반환queue.isEmpty //큐가 비어있는지 확인queue.length //큐의 길이 확인4)예시* 문제클래스 RecentCounter를 구현하세요.이 클래스는 주어진 시간 범위 내에서 호출 수를 기록하고 반환합니다.RecentCounter()는 RecentCounter 객체를 초기화합니다.int ping(int t)는 t (밀리초 단위, 비내림차순) 시점에서 호출되었음을 기록하고, [t - 3000, t] 범위 내에서 .. 2024. 11. 6.
[TIL] 리스트 빈도 구하기 리스트 요소의 빈도 구하기class Solution { bool uniqueOccurrences(List arr) { Map frequency = {}; for (int num in arr){ frequency[num] = (frequency[num] ?? 0) + 1; } List frequencies = frequency.values.toList(); // 빈도의 고유성 검사 return frequencies.length == frequencies.toSet().length; }}map으로 요소와 빈도수를 받을 예정.주어진 배열에서 요소를 하나씩 꺼내와서 frequency라는 맵이랑 비교키가 요소이고 값이 빈도수.frequncy[num]이 없으면 nul.. 2024. 11. 5.