전체 글 152

[백준] 괄호제거(2800) - python

문제어떤 수식이 주어졌을 때, 괄호를 제거해서 나올 수 있는 서로 다른 식의 개수를 계산하는 프로그램을 작성하시오.이 수식은 괄호가 올바르게 쳐져 있다. 예를 들면, 1+2, (3+4), (3+4*(5+6))와 같은 식은 괄호가 서로 쌍이 맞으므로 올바른 식이다.하지만, 1+(2*3, ((2+3)*4 와 같은 식은 쌍이 맞지 않는 괄호가 있으므로 올바른 식이 아니다.괄호를 제거할 때는, 항상 쌍이 되는 괄호끼리 제거해야 한다.예를들어 (2+(2*2)+2)에서 괄호를 제거하면, (2+2*2+2), 2+(2*2)+2, 2+2*2+2를 만들 수 있다. 하지만, (2+2*2)+2와 2+(2*2+2)는 만들 수 없다. 그 이유는 쌍이 되지 않는 괄호를 제거했기 때문이다.어떤 식을 여러 쌍의 괄호가 감쌀 수 있다...

[백준]/python 2025.01.22

서브페이지와 네트워크 통신 구현하기

서브페이지 구현하기1. 서브페이지 구현 이해하기1. 내비게이션 기능의 필요성한 페이지로 만들기 => 페이지 이동이 필요 없으므로 내비게이션이 필요 없음여러 페이지로 만들기 => 버튼 동작, 페이지 이동을 고려하여 내비게이션 설계 필요2. 서브페이지 구현 절차1. 첫번째 페이지 만들기새로운 플러터 프로젝트 만들기 -> main.dart 파일에 다음과 같은 코드 작성2. 두번째 페이지 만들기_FirstPage 클래스에 만든 플로팅 버튼을 눌렀을 때 호출되는 onPressed 이벤트 처리 함수 작성.Navigator 는 스택을 이용해 페이지를 관리할 때 사용하는 클래스이다.Navigator 클래스의 of 함수는 현재 페이지를 나타내고, push함수는 스택에 페이지를 쌓는 역할을 한다.따라서 화면에 보이는 코드..

[백준] 괄호의 값(2504)- python

문제4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다.한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다.만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다.X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다.예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다.‘()’ 인 괄호열의 값은 2이다.‘[]’ 인 괄호열의 값은 3이다.‘(X)’ 의 괄호값은 2×값(X) 으로 계..

[백준]/python 2025.01.19

TabBar와 리스트뷰

TabBar를 이용한 페이지 분기처리1. lib/sub/firstPage.dart 파일 생성 TabBar_example이라는 이름으로 새로운 플러터 프로젝트 생성 -> lib 폴더 아래에 sub 폴더를 추가한 후 firstPage.dart파일을 만듦 2. lib/sub/firstPage.dart 파일 작성import 'package:flutter/material.dart';class FirstApp extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Container( child: Center( child: Text('첫 번째 페이지'), ..

[백준] 풍선 터트리기(2346) - python

문제1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안에는 종이가 하나 들어있고, 종이에는 -N보다 크거나 같고, N보다 작거나 같은 정수가 하나 적혀있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다.우선, 제일 처음에는 1번 풍선을 터뜨린다. 다음에는 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다. 양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 때는 왼쪽으로 이동한다. 이동할 때에는 이미 터진 풍선은 빼고 이동한다.예를 들어 다섯 개의 풍선 안에 차례로 3, 2, 1, -3,..

[백준]/python 2025.01.17

앱 레이아웃 구성하기

이미지 위젯 사용하기1. 프로젝트에 이미지 추가하기기존 안드로이드나 스위프트 앱 => 프로젝트에 이미지 추가 -> 바로 사용플러터앱 => 프로젝트에 이미지 추가 -> pubspec.yaml 파일에 이미지 정보 추가 -> 사용2. pubspec.yaml 파일 수정3. lib/imageWidget.dart 파일 수정image.asset 형태로 호출 4. 이미지 크기 조절fit: 앱의 배경이나 이미지를 정해진 공간에 적절히 배치해야 할 때 응용 가능Boxfit.fill : width, height를 가득 채워서 그린다.Boxfit.contain : 이미지가 잘리지 않고 비율이 변하지 않는 범위에서 가능한 한 크게 그린다.Boxfit.cover : 비율을 유지한 채 지정한 범위를 모두 덮도록 그린다. 이미지가 ..

[백준] 괄호(9012) - python

문제괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열이..

[백준]/python 2025.01.15

[백준] 스택(10828) - python

문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다...

[백준]/python 2025.01.14

플러터 기초 위젯 사용하기

유튜브 Flutter officialhttps://www.youtube.com/@flutterdev/featured FlutterWelcome to the official Flutter YouTube channel. Subscribe to stay up to date with best practices about the Flutter SDK. See real code examples, and watch engineers from around the world putting Flutter to work!www.youtube.com Text 표시하기1.폴더 살펴보기lib : 플러터 앱 개발을 위한 다트 파일플러터 SDK 설치 필요main.dart 파일이 있음android : 안드로이드 프로젝트 관련 파일안드..

[백준] 수리공 항승(1449) - python

문제항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다.파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다.항승이는 길이가 L인 테이프를 무한개 가지고 있다.항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다.물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다.입력첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다..

[백준]/python 2025.01.13