분류 전체보기 144

[프로그래머스 / 파이썬 풀이] 햄버거 만들기

# 1,2,3,1 빵야채고기빵 def solution(ingredient): answer = 0 x = 0 while len(ingredient) >= 4: flag = 0 for i in range(x, len(ingredient)-3): if ingredient[i:i+4] == [1, 2, 3, 1]: answer += 1 del ingredient[i:i+4] x = i-3 flag = 1 break if flag == 0: break return answer 처음에는 탐색 구간 설정을 잘 못 해서 시간초과가 발생. while을 순회 하면서 탐색구간을 재 설정해주면 된다.

Programmers 2023.01.14

[Nest.js] jest를 이용한 테스트 코드 작성

정보 전달의 포스팅 보단 학습 메모 목적의 포스팅 입니다. 😢 부족한 설명과 내용에 대해 미리 양해 부탁드립니다. npm run test:cov - 코드가 얼마나 테스팅 됐는지 퍼센티지로 알려줌. npm run test:watch - 저장 할 때 마다 테스트를 진행. 유닛 테스트 모든 함수를 따로 테스트 서비스에서 분리된 유닛을 테스트 spec.ts 파일들을 찾아서 테스트 해준다. E2E 테스트 모든 시스템을 테스팅 사용자의 관점에서의 테스팅 우선 유닛 테스트를 진행해보자 유닛테스트 import { NotFoundException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { MoviesSer..

Nest.js 2023.01.13

[Nest.js] DTO, 모듈화, ValidationPipe 실습

정보 전달의 포스팅 보단 학습 메모 목적의 포스팅 입니다. 😢 부족한 설명과 내용에 대해 미리 양해 부탁드립니다. DTO란? 데이터 전송 객체를 의미, 계층 간 데이터 교환을 위해 사용하는 객체. controller와 service의 create함수의 타입에 DTO를 지정 DTO 작성, Validation 체크 (npm i class-valitator) // create-movie.dto.ts import { IsNumber, IsOptional, IsString } from 'class-validator'; // DTO란? // 데이터 전송 객체를 의미, 계층 간 데이터 교환을 위해 사용하는 객체. // controller와 service의 create함수의 타입에 DTO를 지정 export class..

Nest.js 2023.01.12

[프로그래머스 / 파이썬 풀이] 전력망을 둘로 나누기

from collections import deque def solution(n, wires): min = 10000000000 # 원본이 바뀌지 않도록 배열을 새로 복사를 해주고 pop(i)를 통해 줄을 하나씩 끊는다. for i in range(n-1): global visited wires2 = wires[::] graph = [[] for _ in range(n+1)] wires2.pop(i) visited = [0] * (n+1) for j in wires2: graph[j[0]].append(j[1]) graph[j[1]].append(j[0]) def dfs(i): global visited global cnt visited[i] = 1 for j in graph[i]: if visited[..

Programmers 2023.01.12

[Nest.js] Nest.js CRUD 실습 (REST API)

간단한 CRUD 만들어보기 import { Controller, Delete, Get, Param, Post } from '@nestjs/common'; import { Body, Put, Query } from '@nestjs/common/decorators'; @Controller('movies') export class MoviesController { @Get() getAll() { return 'This will return all movies'; } // 주의 해야 할 점 // :id 와 같은 동적 라우팅을 가진 getOne함수 아래에 같은 Get 메소드인 search함수가 있다면 // search의 값이 동적 라우팅의 값이 돼버린다. @Get('search') search(@Query('ye..

Nest.js 2023.01.11

[Nest.js] Nest 설치

Nest.js 설치 터미널에 npm i -g @nestjs/cli 를 통해 설치 원하는 디렉토리로 이동 후 nest new 명령어 입력 원하는 package manager 선택 (본인은 npm으로 선택) 끝 ※ Nest 실행 방법 npm run start:dev 입력 localhost:3000 으로 가보면 Nest 실행 확인 가능 짠. 백엔드에 대한 지식이 항상 모자란 것 같아 nest를 통해 백엔드 지식을 늘려보고자 한다. (노마드코더님의 Nest 무료강의로 시작)

Nest.js 2023.01.11

[프로그래머스 / 파이썬 풀이] 가장 큰 수

첫시도. from itertools import permutations def solution(numbers): answer = '' a = list(map(str, numbers)) b = permutations(a, len(numbers)) max_n = 0 for i in b: c = ''.join(i) if max_n < int(c): max_n = int(c) answer = str(max_n) return answer 테스트 케이스 몇개를 제외하곤 전부 시간초과가 나버린 케이스 (예상은 했지만 더 좋은 방법이 생각나지 않아 그냥 풀어봤다.) 다른 풀이(통과 코드) def solution(numbers): answer = '' num = list(map(str, numbers)) num.sort..

Programmers 2023.01.11

[프로그래머스 / 파이썬 풀이] 가장 먼 노드

from collections import deque def solution(n, edge): answer = 0 graph = [[] for _ in range(n+1)] visited = [0] * (n+1) q = deque() for i in edge: graph[i[0]].append(i[1]) graph[i[1]].append(i[0]) q.append(1) visited[1] = 1 while q: n = q.popleft() for j in graph[n]: if visited[j] == 0: visited[j] = visited[n] + 1 q.append(j) answer = visited.count(max(visited)) return answer 처음엔 dfs로 시도 했다가 실패. ..

Programmers 2023.01.10
LIST