전체 글 89

[백준/python] 9081번 단어 맞추기

1. 문제 이 문제는 어떤 단어가 주어지고 사전식 정렬을 하였을 때그 바로 다음에 오는 단어를 찾는 문제이다.2. 풀이[접근 1]처음에는 모든 사전식 배열을 다 늘어놓고그 중에서 입력값을 찾은 뒤, 그 다음 값을 출력하는 방식을 생각했다. 1. 순열 라이브러리를 이용해 단어 조합을 모두 리스트에 넣는다.2. 처음 입력한 단어의 인덱스를 찾는다.3. 마지막 단어가 아닐 경우 다음 단어를 출력한다. 역시 코드 자체에 문제는 없었으나 결과가 시간 초과가 떠버렸다.필요 없는 데이터까지 다 구해서일까...바로 다음 순열을 어떻게 찾을지 긴 시간 고민했다. [접근 2]고민의 과정을 거쳐 뒤에서부터 숫자 크기를 비교하는 방식을 발견했다.그 뒤 숫자 위치를 바꾸고 거꾸로 정렬하는 방식으로 문제를 해결할 수 있었다.뒤의..

[백준/python] 11055번 가장 큰 증가 부분 수열

1. 문제 증가 부분 수열이란,수열의 부분 수열 중 증가하는 값으로만 이루어진 수열이다.단, 수열의 순서를 바꾸어서는 안 된다.그 중 합이 가장 큰 것을 구하는 문제이다.2. 풀이[접근 1]처음에는 dfs를 생각해서 문제를 풀었다. 1. 처음 값을 더해준다.2. 해당 값 보다 뒤에 있는 숫자들에 대해 그 값이 더 클 경우 dfs를 실행한다.3. dfs 실행을 마치고나면 기존 결과와 현재까지의 합계 중 큰 값을 결과값으로 바꾼다.4. 값이 더 작은 경우에는 넘어간다. 코드 작성은 잘 하였고 답에는 이상이 없어서 채점을 했는데 결과는 실패..시간 초과가 떠버렸다.그래서 접근 방법을 바꾸었다. [접근 2]이번에는 dp를 활용해서 문제를 풀었다.dp 테이블을 만들어서 각각 인덱스까지의 최대 합을 구한 뒤 그 중..

[백준/python] 20436번 ZOAC 3

백준 20436번 ZOAC 3 1. 문제 이 문제는 쿼티 자판에서 타자를 칠 때 걸리는 시간의 최솟값을 구하는 문제이다.키를 누르는 데 1의 시간이 걸리고 이동하는 데 두 좌표의 거리 (직선 거리 말고 택시 거리) 만큼의 시간이 걸린다.독수리 타법, 즉, 양손의 손가락을 하나씩만 사용하는 타법이고 왼손과 오른손은 한글 자음 모음의 위치로 구분한다.2. 풀이조금 귀찮은 구현 문제였다.쿼티식 키보드에 있는 모든 문자, 즉 알파벳 26개를 모두 배열에 넣어야했다.거리 계산의 간편함을 위해 가장 아래 왼쪽에 있는 'Z'를 (0,0)이라고 생각해서큰 배열 안에 3개의 줄이 있는 이중배열 구조로 키보드를 표현했다. 입력값은 모두 좌표가 아닌 문자로 주어지기 때문에 이걸 좌표로 바꾸는 함수를 만들었다.coordina..

[프로젝트] 스마트오더 플랫폼, Food Bridge 프로젝트 회고

2024. 01. 15 ~ 2024. 04. 28까지 3달 넘게 진행한 프로젝트가 끝났다.4월 5일에 배포를 하고 그 뒤에 서비스를 운영하며 유지보수 기간도 가졌다.긴 프로젝트 기간 동안 어떤 일들이 있었는지 그때마다 기록했으면 좋았겠지만 아쉽게도 그러지 못했다.이게 첫 프로젝트라 그래서일까 기록의 중요성을 너무나 늦게 알아버렸다.그 당시에 기록은 못했지만 사후기록이라도 남겨봐야지. 첫 프로젝트를 시작한다고 의욕 넘치던 초반에 썼던 글...이때부터 계속 기록을 남겼어야했는데! https://jemarque.tistory.com/entry/%EC%B2%AB-%ED%8C%80-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%8C%80-%ED%94%84%EB%A1%9C%EC%A0%9D..

Project 2024.04.30

[백준/python] 21918번 전구

백준 21918번 전구https://www.acmicpc.net/problem/21918 1. 문제 전구의 상태를 숫자 0과 1로 표현한다.전구가 꺼진 경우는 0, 켜진 경우는 1이다.전구를 제어하는 명령어 1~4번을 입력된 순서대로 처리한 뒤의 전구 상태를 확인하는 문제이다. 2. 풀이이 문제는 간단한 구현 문제로, 난이도가 쉬운 편이었다.각각의 명령어를 수행하는 코드를 짜서 명령어가 입력된 순서에 맞게 실행만 시키면 된다. 함수형 프로그래밍 구현을 위해 조건문을 사용해 각 경우를 함수 안에 넣었다.반복문을 사용해 명령어들을 입력받은 순서대로 실행했다. 3. 코드처음 시도에서는 평소 자주 사용하던 방식대로 입력 받은 명령어 정보를 배열에 저장했다.그 뒤에 배열에 저장한 각각의 명령어 정보에 대해 순서대..

[React] 이미지 슬라이더 만들기(자동, 무한반복)

프로젝트에서 메인 페이지와 상세 페이지 상단에 이미지 슬라이더를 넣기로 했다. 조건은 두 가지. 1. 화살표 버튼을 눌렀을 때 이동이 가능할 것. 2. 시간이 지나면 자동으로 다음 이미지로 넘어갈 것. - 옆으로 넘어가는 장면 useState와 useEffect가 필요하다.import { useState, useEffect } from 'react'; react-icons를 설치하여 화살표 아이콘을 가져온다.import { IoIosArrowForward, IoIosArrowBack } from 'react-icons/io'; 이미지 슬라이드에 들어갈 이미지들은 배열 형태로 외부에서 props로 받아오도록 한다.export default function ImageSlider({ slides }) 우선 이..

Programming/React 2024.02.01

[클래식소믈리에] 메인, 문답 시작 페이지 완성

오늘의 작업 디자인을 마치고 메인과 문답 시작 페이지를 완성했다. 원래 pc에 적합한 ui로 디자인했었으나 아무래도 서비스 특성상 모바일 기기로의 공유가 빠를 것 같다는 생각이 들었다. 나 이거 해봤는데 너도 해봐 하면서 공유하는 그런 느낌의 서비스. 인스타 같은 곳에 올리기에도 모바일에 최적화되는 편이 나을 것 같아서 디자인을 수정했다. 핸드폰 화면에 들어갈 정도의 좁은 영역을 사용하는 방향으로 바꾸었다. 어려웠던 점 1. tailwind가 아직 익숙하지 않다. css보다 분명 쉬운 부분도 있지만 문법을 정확히 몰라 계속 문서를 찾아보며 헤맸다. 특히 너비와 높이를 설정함에 있어서 어려움을 많이 겪었다. header와 footer를 포함해서 스크롤바가 생기지 않게 길이를 딱 맞추고 싶은데 그게 아무리 ..

Project 2024.01.20

[클래식소믈리에] 프로젝트 개요 및 메인페이지

프로젝트 시작 계기 개인 프로젝트를 뭘할까 고민하면서 보내고 있던 요즘이었는데, 대부분 백엔드와 협업하지 않으면 진행하기 어려운 아이디어여서 보류 중이었다. 파이썬이나 노드를 이용하여 백엔드를 구현할까도 잠시 고민했으나, Next.js와 타입스크립트를 배우기 전 리액트를 정리할 겸 시작하는 개인 프로젝트여서 백엔드보다는 프론트의 비중이 훨씬 중요했다. 오늘 아침 차를 타고 가면서 음악을 듣다가 갑자기 아이디어가 머리를 스쳤다. mbti 테스트와 같은 무언가를 만들어보자는 생각에서 시작하여 취향에 맞는 음악을 추천해주자는 생각이 들었다. 음악 앱 중에는 알고리즘으로 음악을 추천해주는 서비스가 있지만, 나는 문답에 참여하면 그 결과로서 음악을 추천해주는 서비스를 만들어보려고 한다. 그냥 음악으로 하면 너무 ..

Project 2024.01.19

[Figma] 기초적인 Figma 정리

팀프로젝트의 첫 단계, ui 설계를 위해 피그마를 배우기로 했다. udemy의 웹디자인 강의를 결제해두었는데 이제 정말 들을 때가 되었다. 기초 기능을 다루는 방법을 정리하며 강의를 들어야겠다. 1. 프레임 (단축키 f) - 화면 크기 정하기 (아이폰, 데스크탑 등등, 또는 개인설정 가능) - 프레임 안에 2개 이상의 도형을 하나의 그룹으로 만들기 위해서는 command+g 또는 shift 누르고 클릭 - 그룹을 해제하기 위해서는 shift+command+g - 프레임 안 오브젝트에 제약조건을 추가할 경우 프레임의 변화와 관계 없이 그대로 있음 2. 기본 도형 - 직사각형(R), 라인(L), 화살표(shift+L), 원(o), 다각형, 별, 펜툴(p) - shift를 누를 경우 정사각형, 8방향의 라인,..

Project 2024.01.18

[스마트오더] 팀 프로젝트를 시작하다

리액트 강의를 거의 다 들었을 무렵부터 인프런과 홀라에 올라오는 팀프로젝트 게시물을 유심히 보기 시작했다. 개인프로젝트부터 하는게 순리인 것 같기도 하지만, 괜히 팀플로 더 멋진 결과물을 만들고 싶은 느낌. 인프런에 올라온 글을 보고 문의를 몇 번 했으나 매번 next.js나 typescript라는 조건 때문에 참여를 못했다. 그러나 이번에 올라온 글에는 언어가 명시되어 있지 않아 문의를 넣었다. 다행히 아직 언어를 정하기 전이어서 이미 합류해 계신 프론트엔드분과 협의하여 자바스크립트로 개발을 진행하기로 했다. 이 팀에서는 실력보다는 인성과 태도 부분에서의 3가지 요소를 보았고 그 부분은 모두 자신 있었다. 많은 시간을 투자해서 부족한 실력을 잘 메워야지. 이 팀은 디자이너가 없어서 ui 개발을 다같이 ..

Project 2024.01.16