본문 바로가기

java

(77)
[프로그래머스/Java] 공원 산책 📚 [1 주차] 공원 산책 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 공원 산책 | 프로그래머스 스쿨 (programmers.co.kr) 문제 지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. - ["방향 거리", "방향 거리" … ] 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다. - 주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다. - 주어진 방향으로 이동 중 장애물을 만나는지 확인합니다. 위 두 가지중 어..
[프로그래머스/Java] 추억 점수 📚 [1 주차] 추억 점수 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 추억 점수 | 프로그래머스 스쿨 (programmers.co.kr) 문제 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이..
[프로그래머스/Java] 달리기 경주 📚 [1 주차] 달리기 경주 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 달리기 경주 | 프로그래머스 스쿨 (programmers.co.kr) 문제 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와풀 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수..
Clean Code, 1장 깨끗한 코드 1장 깨끗한 코드 목차 코드가 존재하리라 나쁜 코드 클린 코드란? 보이스카우트 규칙 결론 코드가 존재하리라 누군가 는 코드의 종말이 코앞에 닥쳤다고 하지만 코드가 사라질 가망은 없다. 코드는 요구사항을 상세히 표현하는 수단이므로 코드의 도움 없이 요구사항을 상세하게 표현하기 어렵다. 코드의 도움 없이는 추상화가 어렵다. 궁극적으로 코드는 요구사항을 표현하는 언어이고 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다. 나쁜 코드 프로그래머라면 누구나 당연히 나쁜 코드로 고생한 경험이 있다. 그렇다면 어째서 나쁜 코드를 짰을까? 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고, 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다..
TDD & Unit Test TDD & Unit Test TDD 테스트 주도 개발(Test-driven devlopment, TDD)은 소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다. 먼저 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식 장점 객체 지향적인 코드 개발 TDD는 코드의 재사용 보장을 명시하므로 TDD를 통한 개발 시 기능별로 모듈화가 이루어진다. 의존성과 종속성이 낮은 모듈로 조합된 소프트웨어 개발을 가능하게 하며, 필요에 따라 모듈을 추가하거나 제거해도 소프트웨어 전체 구조에 영향을 미치지 않게 된다. 설계 수정시간의 단축 테스트코드를 먼저 작성하기 때문에 최초 설계안을 만족하게 하며 입출력 구조와 기능의 정의를..