전체 글 495

백준 9663번 N-Queen 파이썬 풀이

문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 정답 풀이 #N-Queen #N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. #N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. import sys n = int(sys.stdin.readline().rstrip()) ans = 0 row = [0] * n def is_promising(x): for i in range(x): if row[x] == row[i] or abs(row[x] - row[i]) == abs(x - i): return Fals..

CS/알고리즘 2022.03.11

카카오 2022 코딩테스트 '신고결과받기' 파이썬 풀이

https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 내 풀이 from collections import defaultdict def solution(id_list, report, k): answer = [0] *len(id_list) report = set(report) user_list_i_reported = defaultdict(set) num_of_reported = defaultdict(int) s..

CS/알고리즘 2022.03.10

[java] Stream 개념 공부

Stream 자바 8에서 추가된 스트림은 람다를 활용할 수 있는 기술 중의 하나. 스트림은 데이터의 흐름 자바에서 제공하는 Collection 인터페이스에는 stream() 메소드가 정의되어있고, 이를 구현한 List 와 Set 등의 컬렉션 에서도 stream 메소드를 사용할 수 있다. Stream 특징 1. Stream 은 데이터를 변경하지 않는다. - 원본데이터로부터 데이터를 읽기만 할 뿐, 원본 데이터 자체를 변경하진 않음 2. Stream은 일회용이다. -Stream은 한번 사용하면 닫혀서 재사용이 불가능하다. 3. Stream은 작업을 내부 반복으로 처리한다. -Stream을 이용한 작업이 간결한 이유는 바로 내부 반복이다. 즉, 반복문이 코드 상 노출되지 않는다. 코드 예제 ArrayList ..

[Android java] 이미지 fade in fade out 애니메이션 주는 방법

이미지 애니메이션 주는 방법 안녕하세요 이번에 간단하게 이미지에 애니메이션을 주는 방법을 알아보겠습니다. xml MainActivity package com.example.recycleviewexample; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private final String TAG = MainAc..

[java spring] MVC 모델 공부

MVC 모델 - model - view - controller *개념 모델(Model) -DATA, 정보들의 가공을 책임지는 컴포넌트. 뷰(View) -사용자에게 보여지는 부분, 유저 인터페이스를 의미 -MVC 패턴은 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다. 컨트롤러(Controller) -모델(Model)과 뷰(View) 사이를 이어주는 브릿지 역할을 함 -모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성 요소에게 통지 *특징 -각 컴포넌트는 자신이 맡은 역할만을 수행 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도를 낮출 수 있음 ( 시스템 결합도가 낮아야 유지보수 편리) -다수의 뷰와 모델이 컨트롤러를 통해 연결되기 떄문에 컨트롤러가 불필요하게..

백트래킹 알고리즘 정리(feat. 백준 15649번 파이썬 풀이)

정의 모든 가능한 경우의 수 중에서 특정한 조건을 만족하는 경우만 살펴보는 것 DFS(깊이 우선 탐색) + 특정 조건만 탐색 특징 1. 조건들을 하나씩 대입해가면서 만약 조건에 맞지 않는다면 그 즉시 중단하고 다음으로 넘어간다. 2. 상태공간트리를 DFS(깊이우선탐색)으로 탐색한다. 3. 방문 중인 노드에서 더 하위 노드로 가면 해답이 없을 경우, 해당 노드의 하위 트리를 방문하지 않고 부모 노드로 되돌아간다. 가치치기(pruning) - 유망하지 않으면(하위 노드가 답이 없을 경우) 하위 트리를 방문하지 않는 것. 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 정답풀이 #백트레킹..

CS/알고리즘 2022.03.06

[java spring boot] Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation. 에러 해결

문제 상황 인프런 백엔드 강의를 듣고 스프링부트로 gradlew 를 build하려고 하니 아래와 같은 에러가 발생 Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 해결 구글링해보니 보통 변수값에 \bin 이라는 것이 없는데, 제 변수 값엔 들어있었고, 여기서 힌트를 얻어 검색을 해보았습니다. cmd창(명령창) 에 아래와 같은 코드로 변수 값을 변경해줍니다. set Java_HOME=c:/Program Files/Java/'본인의 자바버전' * 본인의 자바버전 확인하는 방법 -javac-version 성공화면

git 특정 파일만 commit push 하는 방법(LF에러 해결)

git 특정파일만 commit push 하는 방법 git add . (X) -> git add 파일경로 ex) git add java/BJ2557 문제 LF will be replaced by CRLF in ~~ 에러 Eclipse를 통해 java 파일을 만들어 알고리즘 문제를 풀었다. 푼 알고리즘 문제(BJ2557)만 연결된 깃허브에 올리려고 하였는데,이런식으로 warning이 났다. 문제해결과정 LF(Line-Feed) 커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작 1.원인 OS마다 줄 바꿈에 대한 문자열이 다르기 때문에 git에서 어느 쪽을 선택해야 할지 경고 메시지를 띄워 준 것 2.해결방법 window, dos 명령어 git config --global core.au..

IT/git 사용법 2022.03.04

[Android java] 해상도 별 이미지 크기 변경 하는 방법(이미지 대응)

해상도 별 이미지 크기 변경 하는 방법(이미지 대응) 핸드폰이 크기 별로 달라 UI를 디자인할 때 꽤나 난감한 상황을 마주치게 됩니다. 이러한 문제는 dpi 별 해상도 이미지 크기를 달리하여 대응할 수 있습니다. dpi별 해상도 ldpi 저밀도(120dpi) 화면에 해당합니다. mdpi 중밀도(160dpi) 화면에 해당합니다. hdpi 고밀도(240dpi) 화면에 해당합니다. xhdpi 초고밀도(320dpi) 화면에 해당합니다. xxhdpi 초초고밀도(480dpi) 화면에 해당합니다. xxxhdpi 초초초고밀도(640dpi) 화면에 해당합니다. http://romannurik.github.io/AndroidAssetStudio/ Android Asset Studio Launcher icon generat..

백준 11651번 좌표 정렬하기 2 파이썬 풀이

문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 정답풀이1 -꽈배기처럼 x좌표와 y좌표를 직관적으로 바꾸는 코드 #좌표 정렬하기 2 #2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, # y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. from array import array import sys N = int(input()) xy_arrays = [] #1. 값넣기 for i in range(N): x,y = map(int,sys.stdin.readline().split()) xy_arrays.append([y,x]) xy_ar..

CS/알고리즘 2022.03.03