분류 전체보기 132

[프로그래머스] Lv2. 삼각 달팽이

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 예시 입출력 제한 사항n은 1 이상 1,000 이하입니다. 처음 시도def solution(n): # n개의 빈 리스트를 생성한다. answer = [[] for _ in range(n)] # 채워진 배열을 나타내는 리스트 full = [False for _ in range(n)] # 젤 아래 리스트를 나타내는 수 ground = n - 1 # 위로 갈지(1..

[프로그래머스] Lv2. 행렬 테두리 회전하기

https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제일단, 위 문제 설명만을 읽었을 때 한번에 이해되지 않았다. 아래의 예시를 통해 쉽게 이해할 수 있었다. 예시 위의 왼쪽 예시는 rows와 columns가 각각 6, 6으로 주어졌을 때의 초기 행렬의 모습이다.이때, queries도 함께 주어지는데, queries의 첫 번째 요소인 [2, 2, 5, 4] 리스트를 적용했을 때의 예시이다.[2, 2, 5, 4] 리스트의 의미는 직사각형의 범위를 지정..

[프로그래머스] Lv2. 거리두기 확인하기

문제 설명P: 사람X: 파티션O: 테이블사람과 사람 간의 거리는 맨해튼 거리 2 이하일 경우 코로나 바이러스 감염 예방 규칙을 위배하는 것이다.맨해튼 거리란 두 사람의 좌표가 각각 (x1, y1), (x2, y2)일 때, |x1-x2| + |y1-y2|의 크기를 의미한다.각각의 강의실에 배치된 사람들이 감염 예방 규칙을 잘 이행한 경우 1, 이행하지 않은 경우 0을 반환하고,최종적으로 각각의 강의실에 대한 반환을 하나의 리스트에 담아 반환하면 된다. 제한 사항제한 시간 : 10초 입출력 예시 첫 번째 시도def check_border(place, i, j): border = [(-1,-1), (-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1)] for dx, dy..

[프로그래머스] Lv2. 행렬의 곱셈

https://school.programmers.co.kr/learn/courses/30/lessons/12949?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해라. 입출력 제한 사항행렬 arr1, arr2의 행과 열의 길이는 2이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다. 답 도출가능하다면 나는 기본적으로 항상 문제를 가장 단..

[뉴스피드 프로젝트] 인증 필터와 인가 필터 동작 알아보기

이전 게시글에서 등록한 인증 필터와 인가 필터의 동작이 어떻게 이루어 지는지 알아보자.일단, 8080포트에 사용자의 요청이 들어오면 Spring Security를 사용하지 않는 경우에는 디스패처 서블릿(Dispatcher Servlet)이 처음 동작한다.그러나, Spring Security를 사용하는 경우에는 Security Filter를 거친 후에 Dispatcher Servlet에 도착한다.Dispatcher Servlet은 api 주소를 파싱하여 컨트롤러를 호출하고 컨트롤러는 서비스, 서비스는 레포지토리, 레포지토리는 영속성 컨텍스트를 호출하는 방식으로 동작한다.이때, Dispatcher Servlet에서부터 영속성 컨텍스트까지의 동작에서 예외가 발생하는 경우에는 @RestController..

[뉴스피드 프로젝트] 시큐리티 설정 및 필터 적용

시큐리티 설정@Configuration해당 어노테이션을 사용하여 시큐리티 설정을 해주었다. 아래는 해당 어노테이션의 사용 이유이다.설정 파일 만들기Bean 등록싱글톤으로 Bean 관리@Configuration을 사용하여 생성된 빈 객체에는 CGLIB이 붙은 객체인 것을 알 수 있다.이것은 스프링에서 CGLIB이라는 바이트코드 조작 라이브러리를 사용해서 AppConfig를 상속받은 임의의 클래스를 만들고 그것을 스프링 빈으로 등록한 것이다. 이를 통해 빈을 싱글톤으로 관리해준다.반면, @Bean만을 사용하여 스프링 빈으로 등록하면 순수 AppConfig 파일을 사용해 생성된 빈을 확인할 수 있다. 해당 빈은 싱글톤으로 관리되지 않는다. 다음은 코드를 통해 SecurityConfig 클래스..

[Mac OS] Port 8080 was already in use. 에러

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.(포트 8080에서 수신 대기 중인 프로세스를 식별하고 중지하거나 다른 포트에서 수신하도록 이 애플리케이션을 구성하십시오.) 스프링 부트 애플리케이션을 실행시킬 때 자주 발생하는 에러이다. 현재 사용중인 8080 포트를 중지하여 문제를 해결해보자. 1. Mac OS에서 사용 중인 포트(Port) 확인 방법 터미널을 켠다. 하단의 명령어를 입력하여 8080 포트 사용 여부를 확인한다. lsof -i tcp:8080 2. 8080 포트를 사용중인 프로세스를 삭제한다. PID 확인 : 51752 하단의 명..

Error 2024.04.22

[프로그래머스] 외계어 사전 문제 : sort와 sorted

문제 설명입력 파라미터spell : 알파벳이 담긴 리스트dic : 외계어 문자열이 담긴 리스트→ spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 있다면 1 반환, 없다면 2 반환입출력 예spelldicresult["p", "o", "s"]["sod", "eocd", "qixm", "adio", "soo"]2["z", "d", "x"]["def", "dww", "dzx", "loveaw"]1["s", "o", "m", "d"]["moos", "dzx", "smm", "sunmmo", "som"]2슈도 코드# dic의 모든 요소를 조회# 조회한 문자열 요소를 리스트로 만든다. -> 어떻게?# 리스트를 sort() 한다.# spell 리스트도 sort() 한다.# 비교한다. 있으면 1 리턴풀이..

[혼공컴운] 1. 컴퓨터 구조 시작하기

📋 컴퓨터 구조를 왜 알아야 하는지 이해한다.📋 컴퓨터 구조의 큰 그림을 그려본다. 01-1. 컴퓨터 구조를 알아야 하는 이유문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다. 컴퓨터가 '미지의 대상'에서 '분석의 대상'이 된다.1. 문제 해결 능력 향상2. 성능/용량/비용을 고려한 개발 가능 01-2. 컴퓨터 구조의 큰 그림컴퓨터가 이해하는 정보우리가 알아야 할 컴퓨터 구조 지식은 2가지다.하나는 '컴퓨터가 이해하는 정보'이고, 또 하나는 '컴퓨터의 네 가지 핵심 부품'이다.컴퓨터 구조→ 컴퓨터가 이해하는 정보→ 컴퓨터의 네 가지 핵심 부품컴퓨터는 0과 1로 표현된 정보만을 이해한다. 0과 1로 표현된 정보는 2가지, 바로 데이터와 명령어이다..

CS/컴퓨터 구조 2024.04.16

[서적] 객체지향의 사실과 오해

※ 리뷰 내용은 점진적으로 추가할 예정입니다. 들어가며 객체지향의 사실과 오해는 java 개발자에게 꼭 읽도록 권장하는 책이다. 그래서 이번 기회에 해당 서적을 도서관에서 빌려 읽기로 하였다. 1장 협력하는 객체들의 공동체 파트를 읽었다. 많은 개발자들이 클래스 위주의 사고를 바탕으로 설계를 하고 있는데 저자는 이를 지적하며 클래스 위주의 사고에서 객체 위주의 사고로 전환이 필요하다고 말했다. 확실히 클래스 위주로 생각하다보면 정확히 이해되지 않는 부분이 많았던 기억이 있다. 글을 읽으면서 객체가 협력성과 자율성을 가진다는 중요한 개념을 알게 되어 좋았다. 객체 지향이란 무엇인가? 지금까지 객체 지향 개발을 하기 위해 추상화, 캡슐화, 상속, 다형성 등의 여러 개념을 배웠다. 하지만 이러한 개념들을 활용..

서적 2024.04.08