분류 전체보기 290

#2884 : 알람 시계

풀이방법 사용된 것: 수학 사칙연산 2022.03.15 이전에 풀었던 문제인데 블로그에 풀이를 적지 않았어서, 지금 남긴다. 덧셈과 뺄셈만 해주면 된다. 일단 주어진 분 값에서 45를 뺀다. 45를 뺐더니 0보다 작아졌다면, 시 값에서 1을 빼고 분 값에는 60을 더하여 올바른 시간 표기로 바꾸어준다. 그런데 주어진 시 값이 원래 0이었다면 위의 과정에서 시 값이 -1이 되어버린다. 따라서, 시 값이 음수일 경우 시 값에 24를 더해주는 작업을 해준다. 시 값과 분 값을 화면에 출력하면 문제가 해결된다. 코드 Java(2022.03.15) import java.util.Scanner; public class Main { public static void main(String[] args) { // TOD..

토크쇼 비행기모드를 위한 랜딩페이지 제작: 백엔드

쏙쏙 팀과 띄움 서비스의 홍보를 위해 필요한, 특히 토크쇼 에서 오픈채팅방에 입장하기 위한 문턱으로 쓰일 랜딩페이지를 개발한다. 내일 있을 UNIS 최종데모데이에서 이 랜딩페이지의 개발현황을 공유할 것이므로, 오늘 오전까지 백엔드 개발을 완료하여 발표팀에게 넘겨주어야 한다. 깃허브 레포지토리 https://github.com/00blowup/SoakSoak_Lading_1 GitHub - 00blowup/SoakSoak_Lading_1: 2023.02.03~ 홍보 및 토크쇼 진행을 위한 랜딩페이지 개발 2023.02.03~ 홍보 및 토크쇼 진행을 위한 랜딩페이지 개발. Contribute to 00blowup/SoakSoak_Lading_1 development by creating an account ..

#5585 : 거스름돈

풀이방법 사용된 것: 그리디 2023.01.19 가장 큰 금액인 500엔 잔돈부터 가장 작은 금액인 1엔 잔돈까지 순서대로 각각 주어야 하는 개수를 구하면 된다. 줘야 하는 각 잔돈의 개수, 그 잔돈을 준 후 아직 더 주어야 하는 거스름돈의 양은 나누기 연산과 나머지 연산을 통해 구할 수 있다. 코드 Java(2023.01.19) import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner (System.in); //타로가 산 물건 가격 읽어오기 int n = sc.nextInt(); //줘야 하는 거스름..

#15649 : N과 M (1)

풀이방법 사용된 것: 백트래킹(backtracking) Deque 2023.01.17 숫자를 순서대로 하나 고르는 것을 한 번의 단계로 본다. 사전순 순서에 맞추어 숫자를 하나하나 고르면서, 백트래킹을 통해 모든 수열을 찾는다. 코드 Java(2023.01.17) import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; public class Main { static StringBuilder sb; static boolean[] visited; public static void main(String[] args) { // TODO Auto-generated method stub sb = new StringBuilder()..

오답노트 #17298 : 오큰수

풀이방법 및 문제점 2023.01.17 (1) 시간초과가 발생했다. 논리적 풀이 방식이 틀리지는 않은 것 같다. 모든 예제가 올바르게 해결되고, 하나하나 짚어보았을 때 논리적으로 오류가 있는 부분이 없어보인다. 시간초과가 발생한 것은 출력 수 하나마다 새 스택을 하나씩 만들어 푸는 방법을 택해서인 것 같다. 사용하는 스택의 개수를 줄이고, 무엇보다도 add()와 pop()의 수행 횟수를 최대한 줄여야 할 것 같다. 하나의 스택만 사용해서 푸는 방법이 있을까? 사용한 풀이방법은 다음과 같다. 1. 입력값은 1차원 정수 배열 original에 순서대로 저장한다. 2. 반복문에서, 0부터 N-1까지의 i에 대하여 다음과 같은 과정을 수행한다. stack을 새로 하나 만든다. boolean 값 check를 선언..

4. 팬레터 서비스 정리, 팬레터 리포지토리 설계

팬레터 리포지토리에 어떤 메소드들이 필요한지 설계해보자. 서비스부터 생각해보는 것이 편하고 효율적일 것 같으니 서비스부터 생각해보려 한다. 그 후에 그 서비스를 구현하는 데 필요한 리포지토리를 뽑아낼 것이다. 팬레터 서비스 정리 팬레터 데이터와 관련된 띄움의 서비스는 무엇이 있을까? 팬 서비스 팬은 새로운 팬레터를 작성할 수 있다. 팬은 자신이 작성한 팬레터들을 한 번에 조회할 수 있다. 팬은 자신이 작성한 팬레터들을 수신인별로 나누어 각각의 대화창에서 조회할 수 있다. 팬은 자신이 작성한 팬레터들을 제목 기준으로 검색하여 조회할 수 있다. 팬은 자신이 작성한 팬레터에 수신인이 좋아요를 남겼는지 여부를 확인할 수 있다. 팬은 자신이 작성한 팬레터들을 삭제할 수 있다. 창작자 서비스 창작자는 다른 창작자를..

프로젝트/띄움 2023.01.12

#1918 : 후위 표기식

풀이방법 사용된 것: Stack 2023.01.10 주어진 중위 표기식을 앞에서부터 한 글자씩 훑으면서, 이번 글자의 종류가 무엇인지에 따라 아래와 같은 작업을 수행해주면 문제를 풀 수 있다. 1. 이번 글자가 피연산자인 경우 이번 글자를 즉시 화면에 출력한다. 2. 이번 글자가 왼쪽 괄호인 경우 스택에 '('를 넣어준다. 3. 이번 글자가 오른쪽 괄호인 경우 스택의 top에 '(' 가 올라올 때까지 계속해서 pop()을 하여 하나씩 화면에 출력한다. 스택의 top에 '('가 올라왔다면 그 '('는 화면에 출력하지 않고 pop()만 해준다. 4. 이번 글자가 + 혹은 -인 경우 현재 스택이 비어있지 않다면, 스택이 비거나 top에 '('가 올라올 때까지 계속해서 pop()을 하여 하나씩 화면에 출력한다...

3. 팬레터 도메인 작성

도메인 작성을 위해 다음과 같이 letter 패키지를 만들고 LetterBasicDomain 클래스를 만들었다. letter 패키지 안에 팬레터 관련 도메인, 리포지토리, 서비스를 넣을 생각이다. LetterBasicDomain 클래스는 지난 게시글에서 짰던 매우 기본적인 필수 정보만을 담은 도메인을 정의한다. 코드는 다음과 같다. package com.soaksoak.ttm_1.letter; public class LetterBasicDomain { /* 필드 */ private Long id; //ID private String title; //제목 private String src; //발신인아이디 private String dest; //수신인아이디 private String content; //..

프로젝트/띄움 2023.01.09