전체 글 474

[삼성SW역량][Python/BOJ] 백준 17144 미세먼지 안녕!(시뮬레이션)

와 생각보다 정말 시뮬레이션이 생각해야할게 많고 어렵구나...!!!! 코드 : dx = [1,0,-1,0] dy = [0,-1,0,1] if __name__=="__main__" : r,c,t = map(int,input().split()) mp =[list(map(int,input().split())) for i in range(r)] for i in range(r) : # 공기청정기가 있는 행 알아내기 if mp[i][0] == -1 and mp[i+1][0] == -1 : now = (i,i+1) break for _ in range(t) : # 확산 # 새롭게 확산된 값을 저장할 배열 new = [[0]*c for i in range(r)] for i in range(r) : for j in ra..

[삼성SW역량][Python/BOJ] 백준 15684 사다리조작(dfs)

🐾 20220918 사다리를 어떻게 생각해야할지 생각이 많았는데 지금으로서는 이렇게 생각하는게 제일 쉽다. (아래 사진 참고) 선을 그을수 있는 candidate를 만든다. candidate를 돌면서 그을수 있다면 그으면서 가장 최소의 check가 True인 값을 구한다. 코드 : def check() : # i 번 세로선의 결과가 i가 나오는지 확인 for i in range(1,n+1) : # 세로선을 돌면서 k = i for j in range(1,h+1) : # 선을 놓을 수 있는 곳을 확인 if line[j][k] == 1 : k+=1 elif line[j][k-1] == 1 : k-=1 if i != k : return False return True # added : 그어진 선 개수, num..

[1]회원 관리 예제 - 백엔드 개발[테스트 코드 작성,서비스와 리포지토리]

서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근 도메인 : 비즈니스 도메인 객체 단축키 : 작성한 코드를 별도의 메서드로 만드려면 단축키는? (메서드 추출) : Ctrl + Alt + m 테스트 파일을 쉽게 만드는 단축키는 ? : Ctrl + shift + t 게터,세터,생성자 단축키는? : alt + insert 반환형 만든는 단축키는? : ctrl + alt + v rename을 쉽게 도와주는 단축키는? shift + f6 1 . 회원 리포지토리 테스트 케이스 작성 테스트 케이스 작성 중 Assertions.assertThat에서 에러가 발생하였다. 질문 게시판에서 이유를 발견할 수 있었다. Assertion에는 import할 수 있는 2가지가 있다. 강사님께서는 assertj...

[삼성SW역량][Python/BOJ] 백준 14890 경사로(구현)

main에서는 가로와 세로를 차례대로 검사하고 check 함수의 결과가 True인 경우 ans의 값을 늘려준다. check함수는 아래와 같은 경우에는 경사로를 놓을 수 없다. 경사로를 놓은 곳에 또 경사로를 놓는 경우 낮은 칸과 높은 칸의 높이 차이가 1이 아닌 경우 낮은 지점의 칸의 높이가 모두 같지 않거나, L개가 연속되지 않은 경우 경사로를 놓다가 범위를 벗어나는 경우 이러한 경우 return False 를 하고 만약 함수의 끝까지 도달할 경우 retrun True를 한다. True한 경우가 길이 있는 경우이다. 코드 : def check(now) : # 한 행 또는 열을 지나갈 수 있는지 검사 for i in range(1,n) : if abs(now[i-1] - now[i]) > 1 : retu..

[0]프로젝트 환경설정과 스프링 웹 개발 기초

1. 프로젝트 환경 설정 ctrl + alt + s를 통해서 Reference에 들어가 gradle을 검색하고 gradle에서 intellij로 설정을 변경해준다. spring은 굉장히 방대하다. 필요한 것을 찾는 능력이 중요하다. spring.io에 들어가 project -> springboot로 @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data","hello!"); return "hello"; // templete/hello.html을 찾아 렌더링 하기 } } 스프링 부트는 톰캣이라는 웹서버가 내장되어있다. 컨트롤러에서 문자열을 리턴..

[삼성SW역량][Python/BOJ] 백준 15685 드래곤커브(시뮬레이션)

하나씩 그려서 반복되는 규칙을 찾는다. 그 규칙은 바로 1을 더한 후 거꾸로 해서 붙이는 것이다. (이걸 어떻게 생각하누...) 그림을 그린 후 아래 설명을 따라 숫자를 적으면 규칙을 찾을 수 있다. (밑에 그려놓은 그림 참고) 즉, K(K > 1)세대 드래곤 커브는 K-1세대 드래곤 커브를 끝 점을 기준으로 90도 시계 방향 회전 시킨 다음, 그것을 끝 점에 붙인 것이다. 방향은 0, 1, 2, 3 중 하나이고, 다음을 의미한다. 0: x좌표가 증가하는 방향 (→) 1: y좌표가 감소하는 방향 (↑) 2: x좌표가 감소하는 방향 (←) 3: y좌표가 증가하는 방향 (↓) 예를 들어 방향이 1일 때를 해보면 0세대 : 1 1세대 : 1 2 2세대 : 1 2 3 2 3세대 : 1 2 3 2 3 0 3 2 ..

[삼성SW역량][Python/BOJ] 백준 14499 주사위굴리기(시뮬레이션)

삼성문제 특 ) 그냥 빡구현 1,2,3,4 번이 동서남북이 아니라 동서북남이다!!! +) 주사위는 지도의 바깥으로 이동시킬 수 없다. 만약 바깥으로 이동시키려고 하는 경우에는 해당 명령을 무시해야 하며, 출력도 하면 안 된다 -> nx,ny를 구하고 지도를 벗어나는지 확인해주어야한다. 코드 : # 동서북남 dx = [0,0,-1,1] dy = [1,-1,0,0] def move(dir) : global x,y nx,ny = x + dx[dir], y + dy[dir] if 0

[0]프로젝트 생성과 컨트롤러_ lombok과 H2,MockMvc가 뭐야?

인프런의 호돌맨의 요절복통 개발쇼를 구매하였다. 유튜브에서 호돌맨을 자주봤었기도 하고 스프링을 빠르게 공부하고 싶었었기 때문이다. 이 강의를 통해 공부해야할 길을 찾을 수 있기를 바란다. 강의를 듣고 따라하는 것에서 끝내는 것이 아니라 강의는 그저 길을 터주는 것이라 생각하고 모르는 것이 생기면 조사하고 공부하여 습득하고 내 지식으로 만들 예정이다. 근데 너무 생소한 개념이 많아서 김영한님 강의로 도망쳤다...김영한님 강의 빨리 듣고 이거 들을게요.. 1. 프로젝트 생성 인텔리제이에서 스프링 부트 프로젝트를 만들었다. 이름은 Durumlog -! 아무것도 하지 않은 페이지는 역시나 Error Page가 떴다. 2. 컨트롤러 생성 컨트롤러를 생성한 후에 다음과 같이 test에서도 동일한 위치에 폴더를 만들..

[삼성SW역량][Python/BOJ] 백준 3190 뱀(시뮬레이션)

시뮬레이션 문제로 문제에서 요구하는 사항을 완성시키면 된다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하지 않는다. 1. mp를 입력받는다. 2. 사과의 위치를 1으로 표시한다. 3. 방향을 바꿀 시간을 입력받는다. 4. start() 4-1. 덱에 위치를 넣는다. 4-2. 벽 또는 본인 몸에 부딪히지않았다면 방문을 표시한다. 4-3. 만약 사과가 있다면 꼬리를 제거하지않고 없다면 제거한다. 4-4. 만약 현재 시간이 3에서 입력받은 방향을 바꿀 시간..