TIL 18

LeetCode 643: Maximum Average Subarray I

문제 설명입력: 정수 배열 nums와 정수 k.출력: 길이가 k인 연속된 부분 배열의 최대 평균.접근 방법슬라이딩 윈도우를 사용하여 길이가 k인 연속된 부분 배열의 합을 효율적으로 계산.첫 번째 윈도우의 합을 계산한 후, 윈도우를 한 칸씩 오른쪽으로 이동하며 합을 업데이트.각 단계에서 최대 합을 추적하여 최종적으로 최대 평균을 반환.코드import 'dart:math'; // max 함수를 사용하기 위해 import// 최대 평균 부분 배열을 계산하는 함수double findMaxAverage(List nums, int k) { // 초기 윈도우의 합 계산 (첫 번째 k개의 원소) int windowSum = 0; for (int i = 0; i nums1 = [1, 12, -5, -6, 50, ..

TIL 2024.12.13

LeetCode 문제 1232

"Check If It Is a Straight Line,"는 주어진 좌표들이 모두 직선 상에 있는지 확인하는 문제입니다.문제 설명:주어진 n개의 점이 직선 상에 있는지 확인하는 함수 checkStraightLine을 구현하세요. 주어진 점들이 직선에 위치하면 true, 그렇지 않으면 false를 반환합니다. Dart 코드:class Solution { bool checkStraightLine(List> coordinates) { // 첫번째 점과 두번째 점의 기울기를 계산 해봄 (y2 -y1 / x2 - x1) int x1 = coordinates[0][0], y1 = coordinates[0][1]; int x2 = coordinates[1][0], y2 = coordinates[1..

TIL 2024.11.25

Train_app 개인과제에 대한 트러블슈팅 및 회고

이번엔 콘솔프로그램이 아닌 앱이 구동이 되게끔 만드는게 과제였는데요 필수기능StationList에서 출발역, 도착역 정보 받아오기HomeScreen에서 출발역, 도착역 정보 받아온 후 좌석 지정좌석 지정 시 선택 된 좌석 퍼플 색상으로 변경좌석 선택 후 예매하기 버튼 누르면 좌석번호를 보여주면서 확인 또는 취소도전기능출발역에서 이미 선택한 연은 도착역에서 나오지 않게 설정다크모드나만의 기능전 우선 출발역과 도착역을 누르지 않고 좌석예매 버튼을 눌렀을때 다음화면으로 넘어가지않고 앱 하단에 알림창이 뜨며 출발역과 도착역을 선택 해달라고 2초동안 뜨는 것으로 세팅 했습니다.전 일단 필수기능은 완성하였고 도전기능은 하지 못했어요..그래도 나만의 기능은 프로그램 짤때 나왔으면 좋겠어서 같이 넣었어요!! 일단!! ..

TIL 2024.11.20

Flutter 입문

Text()Text 위젯을 사용해 화면에 모든 언어의 시작인 'Hello World!' 를 입력해보면 이런 거지같은 화면을 만날 수 있다..void main() { runApp( MaterialApp( home: Text('Hello World!'), ), );} Scaffold()시각적 레이아웃 구조를 구현 - appBar: 앱 상단에 표시할 앱 바 속성AppBar()로 래핑, 타이틀을 정하고 타이틀 글씨를 앱 바 중앙에 배치(디폴트 값은 왼쪽 맨위)void main() { runApp( MaterialApp( home: Scaffold( appBar: AppBar( title: Center( child: Text(..

TIL 2024.11.15

플러터(Flutter) 입문

1. 앱 구동의 시작 main 함수 메인함수main.dart 라는 다트 파일 제일 상단에 보시면 void main() {runApp(MyApp());} 라고 적혀있는걸 보실수 있습니다.이 함수가 플러터 앱실행의 시초입니다. main 이라는 것은 함수의 이름인데이건 우리가 지은것도 아니고, 플러터에서 이렇게 지정한겁니다.내장함수라고 하죠. 앱을 실행하면 main 이라는 함수를 찾아 실행합니다.  어쨋든 main 함수의 내부를 보시면 runApp이라는 또다른 내장함수가 나옵니다.main이라는 함수가 실행되면 runApp이라는것이 실행되는거죠,그안에보면 MyApp() 이라고 적혀있습니다.여기서 MyApp() 은 클래스 이름입니다. 이건 바꿔줄수 있습니다. 2.MaterialApp MyApp 이라는 클래스를 찾..

TIL 2024.11.14

Flutter 입문 다지기

프로젝트 구조에 대해 알아봅시다!! 중요한 역할을 하는 것들 lib 폴더애플리케이션을 만들기 위한 Dart 소스코드를 작성하는 곳플러터로 앱 개발 시 제일 많이 작업하는 폴더(소스코드를 작성해야해서)test 폴더lib 폴더 아래의 작성한 Dart 코드를 테스트하기 위한 코드를 작성하기 위한 곳작성한 코드를 기반으로 다양한 시나리오를 작성해서 테스트를 통과해야만 배포하게 하는 등의 목적으로 사용가능위젯을 테스트 해볼 수도 있으며 작성한 복잡한 수식의 코드가 정상적으로 작동하는지 등의 테스트코드 작성 가능android, ios, linux, macos, web, windows폴더 플러터 프레임워크만으로는 할수 없는 네이티브 기능을 사용하기 위해 각각 플랫폼 별 네이티브 코드를 작성하는 곳예를들어 디바이스의 ..

TIL 2024.11.11

Dart 문법 절대경로와 상대경로

절대 경로와 상대 경로프로그래밍 언어, 운영체제 등에서 컴퓨터의 파일을 찾아가는 방법을 경로(path)라고 한다. 간단히 해당 파일의 위치를 경로라고 할 수 있다. 이러한 경로는 절대 경로와 상대 경로로 구분된다. 절대 경로절대 경로란 최초의 시작점부터 경유한 경로를 모두 기입하는 방식이다. 모든 운영체제에서 최상위 루트부터 경유한 경로를 모두 기입한 절대 경로로만 파일을 찾을 수 있다. 예를 들어 윈도우 환경에서 Desktop에 위치한 example.txt 파일은 아래와 같은 절대 경로를 가진다. C:\Users\UserID\Desktop\example.txt 상대 경로상대 경로는 현재 자신이 위치한 경로를 기준으로 작성된다. 예를 들어 아래와 같은 상대 경로가 있다고 해보자Desktop\example..

TIL 2024.11.08

Dart 전투 RPG_GAME 트러블슈팅과 회고

이번 과제를 하면서 문제점이나 해결방책들을 정리해서 써볼께요!!일단 이번 과제의 시나리오부터 설명해보면,1.  랜덤으로 값을 뽑아내는 기능2. 파일 입출력을 처리하는 기능3. 객체 지향을 활용한 전체 구조 생각하기 그리고 이번 과제의 필수 기능 들에 대해 설명할께요!1. 파일로부터 데이터 읽어오기 가능.게임 시작시 캐릭터와 몬스터의 스텟을 파일에서 읽어옵니다캐릭터의 스탯은 characters.txt 파일에서 읽어옵니다.몬스터의 스탯은 monsters.txt 파일에서 읽어옵니다.전 .txt 파일이 아닌 csv파일 형식으로 만들었어요 다들 아시다시피 Dart:io 라이브러리의 File 클래스를 사용하여 파일을 읽을 거에요!사진상의 나온것처럼 전 csv 파일로 저장을 했고 처음에는 읽어오지 못해서 굉장히 슬펐..

TIL 2024.11.08

Dart 를 활용한 RPG GAME 만들기

오늘은 RPG GAME 만들기를 시작 하였는데요제일 첫번째는 클래스를 나눠 캐릭터의 이름,hp,attack,defenes 몬스터의 이름, hp,attack,defense 를 나눠 메인 bin 파일에서읽을수있게 만들어야 하지만 전 .txt 파일로 만들었다가 어떻게 해야할지 몰라 일단 기능할수 있게 테스트로 메인 파일에 입력하였습니다.void main() { // 캐릭터와 몬스터 생성 Character hero = Character('야발', 100, 30, 10); List monsterList = [ Monster('박쥐', 50, 15, 5), Monster('도룡뇽', 200, 40, 20), Monster('리부레', 80, 25, 10), ];(욕같이 생겨 먹은건 기분탓입니..

TIL 2024.11.06

Dart 3주차 라이브러리를 이용해서 확장하기

라이브러리와 Import1. import 와 라이브러리는 모듈식 공유 코드 기반을 만들 수 있다.2. 라이브러리는 API를 제공할 뿐만 아니라 개인 정보 보호 단위이다.3. 밑줄( _ )로 시작하는 식별자는 라이브러리 내부에서만 사용할 수 있다.4. 모든 다트 파일은 라이브러리가 된다. 라이브러리 사용import를 사용해서 라이브러리를 불러와 사용할수 있다.import 'dart:html'; 내장 라이브러리는 'dart:도표'가 되고, 외부 라이브러리는 'package:도표'가 된다.import 'pakcage:test/test.dart'; 라이브러리 접두사 지정동일한 이름으로 식별자가 충돌하는 경우, 접두사를 지정해서 해결할 수 있다.그리고, 접두사로 지정된 라이브러리는 접두사로 접근할 수 있다.imp..

TIL 2024.11.05