코딩 블로그
-
[C#] List 검색 메서드 (Contains(), Exists(), Find())
C# List는 List에 특정 값이 존재하는지 확인하는 메서드가 여러개 있다.그중 Contains(), Exists(), Find()에 대해 알아보겠다. Contains vs Exists vs Find List.Contains(T)단순히 매개변수의 내용을 포함하는 요소가 List에 있는지 여부를 확인한다.있으면 True, 없으면 False를 반환한다.List.Exists(Predicate)특정 값을 찾기 위한 조건과 일치하는 요소가 List에 포함되어 있는지 여부를 확인한다.있으면 True, 없으면 False를 반환한다.List.Find(Predicate)특정 값을 찾기 위한 조건과 일치하는 요소가 List에 처음으로 검색된 요소를 반환한다.검색되지 않으면 T형식의 기본값이 반환된다.아래 클래스는 이..
2025.01.09
-
[C#][프로그래머스 > 코딩테스트 기초] 배열의 원소 삭제하기
프로그래머스 > 코딩테스트 연습 > 코딩 기초 트레이닝 > 배열의 원소 삭제하기 https://school.programmers.co.kr/learn/courses/30/lessons/181844 📒 문제정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ arr의 길이 ≤ 1001 ≤ arr의 원소 ≤ 1,000arr의 원소는 모두 서로 다릅니다.1 ≤ delete_list의 길이 ≤ 1001 ≤ delete_list의 원소 ≤ 1,000delete_list의 원소는 모두 서로 다릅니다. 입출력 예arrdelet..
2024.08.12
-
[C#] string.Split() + StringSplitOptions
string의 메서드 중 split에 대해 좀 더 자세히 다루기 위해 따로 기록한다. ● Split(char[]|string[], *count, *option) 기준 문자 기준으로 문자열을 잘라 문자열로 반환하는 string 메서드 *은 생략이 가능한 매개변수 매개변수- char[]|string[] : 기준 문자|기준 문자열문자열을 자를때 기준이 되는 문자열, 기준이 한개면 사용하면 배열이 아니어도 상관없다. - *count : 반환할 부분 문자열 최대 수해당 수 만큼만 문자열을 잘라 준다. - *option : 빈 문자열 옵션StringSplitOptions의 필드None: 문자열을 분리할 때 기본 옵션을 사용한다.RemoveEmptyEntries: 문자열을 분리할 때 빈 문자열은 제거한다TrimEn..
2024.07.31
-
[MYSQL][프로그래머스] 동명 동물 수 찾기
프로그래머스 > 코딩테스트 연습 > GROUP BY > 동명 동물 수 찾기https://school.programmers.co.kr/learn/courses/30/lessons/59041 📢 문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.Column nameTypeNullableANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSED..
2025.05.20
-
[C#] Array.Sort() 람다식
이번 포스팅 내용은 Array.Sort에 람다식을 이용하는 방법이다.단순 오름차순으로 변경하는게 아니라 다양한 조건을 사용해 정렬을 하는 법을 찾다가 알게된 문법이다.Array.Sort()를 사용하면 오름차순 배열을 정렬할 수 있다.int[] arr1 = { 20, 60, 40, 50, 30, 10 };Array.Sort(arr1);Console.WriteLine(string.Join(", ", arr1)); // 10, 20, 30, 40, 50, 60 하지만 개발을 하다보면 오름차순 뿐만아니라, 내림차순이나, 기준이 같으면 다른 항목을 비교하는 등 다양한 조건이 요구될 때가 있다.람다식람다식은 c#에서 익명 메서드를 만드는 방법으로 간단하게 설명하자면 '(매개변수 목록) => 식'의 형태로 표현된다...
2025.02.12
-
[알고리즘] 누적합 (Prefix Sum)
누적합(Prefix Sum)은 배열 또는 리스트 등에서 일정 구간의 합을 빠르게 계산하기 위한 방법이면서 동적 계획법(DP)의 형태 중 하나이다.기본적인 방식은 각 요소까지의 누적합을 계산하여 이를 배열에 저장해 두는 것이다. 이후 특정 구간의 합을 구할때 저장해둔 배열을 사용한다. 더보기동적계획법(DP, Dynamic Programming)여기서 동적계획법을 간단히 설명하면 DP, 즉 Dynamic Programming의 줄임말로 기본적인 아이디어는 하나의 큰문제를 여러 개의 작은 문제로 나누어서 해결하고 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것이다.DP는 특정한 알고리즘이 아닌 문제해결 패러다임으로 해당 이름은 큰 의미가 없이 지어졌다고 한다. 누적합 조건 누적합은 배열의 값들이 변..
2025.02.10
-
[C#][프로그래머스] 숫자 짝꿍
프로그래머스 > 코딩테스트 연습 > 연습문제 > 숫자 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/131128 📒 문제두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X ..
2024.09.06
-
[MYSQL][프로그래머스] 특정 형질을 가지는 대장균 찾기
프로그래머스 > 코딩테스트 연습 > SELECT > 특정 형질을 가지는 대장균 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/301646 📢 문제 설명대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다. 다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다. ECOLI_DATA 테이블의 구조는 다음과 같으며, ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE 은 각각 대장균 개체의 ID, 부모 개체의 ID, 개체의 크기, 분화되어 나온 날짜, 개체의 형질을 나타냅니다.Column nameTyp..
2025.05.14
-
[C#] ProcessStartInfo 클래스
ProcessStartInfo 클래스는 프로세스를 시작할 때 사용되는 정보를 포함하는 클래스입니다. 이 클래스는 프로세스의 이름, 인수, 작업 디렉토리, 우선순위 등 다양한 속성을 제공하여 프로세스를 시작하는 데 필요한 정보를 지정할 수 있다.ProcessStartInfo 클래스의 속성FileName: 시작할 프로세스의 이름을 지정합니다.Arguments: 프로세스에 전달할 인수를 지정합니다.WorkingDirectory: 프로세스의 작업 디렉토리를 지정합니다.PriorityClass: 프로세스의 우선순위를 지정합니다.WindowStyle: 프로세스의 창 스타일을 지정합니다.CreateNoWindow: 프로세스가 창을 생성하지 않도록 지정합니다.ProcessStartInfo 클래스의 사용 예시using ..
2025.04.10
-
[알고리즘] A* (에이 스타) 알고리즘
오늘 포스팅할 알고리즘은 A* (에이 스타)알고리즘이다,A*(에이 스타)는 그래프의 최단 경로 문제를 해결하는 알고리즘으로 다익스트라 알고리즘을 발전시킨 것 입니다. 다익스트라 알고리즘은 시작점에서 각 정점에 이르는 최단 경로를, 시작점에서 가까운 정점부터 결정한다. 그러다 보니 종점에서 멀어지는 방향에 있는 정점들의 최단 경로도 결정하게 되는데 이 계산은 결국 사용되지 않기 때문에 불필요한 계산이 된다. A*는 이를 방지하기 위한 알고리즘이다. 다익스트라 알고리즘을 잘모른다면 아래의 포스팅을 보고 오는 것을 추천한다. [알고리즘] 다익스트라 알고리즘 (Dijkstra Algorithm)오늘 포스팅할 내용은 다익스트라 알고리즘으로 앞서 포스팅했던 벨먼-포드 알고리즘과 마찬가지로 그래프의 최단 경로를 구하..
2025.02.07
최신 글
-
[Spring] 패키지명을 통일해야하는 이유
스프링에서 개발을 할때 패키지명을 일반적으로 com.example.xxx.controller, com.example.xxx.service 처럼최초에 프로젝트를 생성할때 com.example.xxx 까지 지정해 둔다.위 사진을 보면 com.cos.blog가 기본 패키지명인데, com.costest라고 마음대로 패키지명을 설정해두었다.이렇게 패키지명을 설정하면 안되는 이유를 알아보겠다.그 이유를 알기 위해서는 스프링의 특징 중 한가지에 대해 알아야하는데, IoC(제어의 역전)의 특징을 가지고 있다는 것이다. IoC (Inversion of Control) 란?사용자가 객체를 new XX()해서 생성하는게 아니라 스프링에서 객체를 생성해서 관리하는 것이다. IoC를 이용해서 관리하는 이유?1. 싱글톤을 이용해..
2025.06.04
-
[MYSQL] 문자열 자르기 (SUBSTRING, SUBSTR, LEFT, RIGTH, SUBSTRING_INDEX)
SQL을 사용할 때 문자열을 일부만 잘라서 사용해야할 때가 있다.이럴때 사용할 수 있는 SQL 함수들에 대해 알아보겠다. 문자열을 볼때 INDEX를 알아야 함수들을 사용하기 편한데, 왼쪽에서 부터 1, 2, 3.. 으로 진행된다.예를 들어 "HELLO WORLD"라는 문자열이 있을때 "E"의 위치는 2이고, 두번째 "O"의 위치는 8이다. ✔ SUBSTRINGSUBSTRING(STRING, START, LENGTH)STRING을 원하는 시작점에서 원하는 길이만큼 잘라낼 수 있다. START와 LENGTH는 시작점과 길이를 나타낸다. ✔ SUBSTRSUBSTR(STRING, START, END)STRING을 원하는 시작점에서 원하는 끝점까지 잘라낸다. START와 END는 시작점과 끝점을 나타낸다. ✔..
2025.05.22
-
[MYSQL][프로그래머스] 중복 제거하기
프로그래머스 > 코딩테스트 연습 > SUM, MAX, MIN > 중복 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/59408 📢 문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.Column nameTypeNullableANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N) FA..
2025.05.21
-
[MYSQL] 날짜 포맷 (DATE_FORMAT)
MySQL에서 날짜 포맷을 변경하려면 DATE_FORMAT 함수를 사용하면된다. DATE_FORMAT을 사용하려면 포맷 문자를 알아야한다.아래의 포맷문자와 '/', '-' 등의 구분자를 사용해서 포맷을 조합할 수 있다.포맷 문자설명포맷 문자설명%Y년도 - 2025, 1999 %m월 - 01, 06, 12%y년도 - 25, 99 %c월 - 1, 6, 12 %d일 - 01, 21 %M월 - January, June, December %e일 - 1, 21 %b월 - Jan, Jun, Dec %T시간 - 13:11:45 %W요일 - Monday, Friday, Sunday %r시간 - 01:11:45 PM %a요일 - Mon, Fri, Sun %H24시간 시간 - 03, 13, 21 %i분 - 00,..
2025.05.21
-
[MYSQL] NULL 처리 (IFNULL, CASE, COALESCE)
MySQL에서 NULL을 처리하는 방법은 여러가지가 있다.✔ IFNULLIFNULL(Column, '대체 값')Column이 NULL인 경우 '대체 값'으로 치환 된다.✔ CASECASE WHEN 조건1 THEN 반환1 WHEN 조건2 THEN 반환2 ... ELSE 모든 조건에 부합되지 않는 경우 반환END조건에 맞는 경우 해당 반환값을 출력하지만 전부 해당되지 않는 경우 ELSE에 있는 값이 반환된다.✔ COALESCECOALESCE(Column1, Colunm2, ... , '대체 값')Column1 부터 확인해서 NULL이 아니면 바로 반환하게 된다. 마지막에 '대체 값'을 넣어서 모두 NULL인 경우를 대비한다. 💡 예시테이블명: PLAYERIDNAMETEAM1KIMFC ..
2025.05.20
-
[MYSQL][프로그래머스] 동명 동물 수 찾기
프로그래머스 > 코딩테스트 연습 > GROUP BY > 동명 동물 수 찾기https://school.programmers.co.kr/learn/courses/30/lessons/59041 📢 문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.Column nameTypeNullableANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSED..
2025.05.20
-
[MYSQL][프로그래머스] 특정 형질을 가지는 대장균 찾기
프로그래머스 > 코딩테스트 연습 > SELECT > 특정 형질을 가지는 대장균 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/301646 📢 문제 설명대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다. 다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다. ECOLI_DATA 테이블의 구조는 다음과 같으며, ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE 은 각각 대장균 개체의 ID, 부모 개체의 ID, 개체의 크기, 분화되어 나온 날짜, 개체의 형질을 나타냅니다.Column nameTyp..
2025.05.14
-
[MYSQL][프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기
프로그래머스 > 코딩테스트 연습 > String, Date > 자동차 대여 기록에서 장기/단기 대여 구분하기https://school.programmers.co.kr/learn/courses/30/lessons/151138 📢 문제 설명다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다.Column nameTypeNullableHISTORY_IDINTEGERF..
2025.05.14
-
경쟁력 있는 주니어 개발자란?
나는 아직 입사한지 1년도 안된 아직 개발자라고 하기도 어색한 주니어 개발자이다.앞으로의 커리어와 개발자로서 마음가짐에 대해 생각이 많았는데 관련된 글을 발견했다.https://f-lab.kr/blog/to-be-competitive-junior-developers 경쟁력 있는 주니어 개발자가 되는 방법이공계 천대라는 이야기가 무색해진지 꽤 오랜 시간이 흘렀고, 개발자 지망생들도, 개발자가 된 사람들도 많아졌다.f-lab.kr 해당 글에선 경쟁력있는 주니어 개발자가 되기위해서 필요한 것들과, 어떤 개발자가 경쟁력 있는지, 또 그런 개발자가 되기 위해서 실천해야할 것들을 정리되어 있었다. 이 3가지를 중심으로 글을 정리해보았다.경쟁력 있는 주니어 개발자가 되기 위해선 특장점과 경험이 필요하다. 특장점먼저..
2025.04.22
-
[C#] ProcessStartInfo 클래스
ProcessStartInfo 클래스는 프로세스를 시작할 때 사용되는 정보를 포함하는 클래스입니다. 이 클래스는 프로세스의 이름, 인수, 작업 디렉토리, 우선순위 등 다양한 속성을 제공하여 프로세스를 시작하는 데 필요한 정보를 지정할 수 있다.ProcessStartInfo 클래스의 속성FileName: 시작할 프로세스의 이름을 지정합니다.Arguments: 프로세스에 전달할 인수를 지정합니다.WorkingDirectory: 프로세스의 작업 디렉토리를 지정합니다.PriorityClass: 프로세스의 우선순위를 지정합니다.WindowStyle: 프로세스의 창 스타일을 지정합니다.CreateNoWindow: 프로세스가 창을 생성하지 않도록 지정합니다.ProcessStartInfo 클래스의 사용 예시using ..
2025.04.10
-
[C#][프로그래머스] 게임 맵 최단거리
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 📒 문제ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가..
2025.02.19
-
[C#][프로그래머스] 무인도 여행
프로그래머스 > 코딩테스트 연습 > 연습문제 > 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 📒 문제메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을 나타내는데, 상, 하, 좌, 우로 연결되는 칸에 적힌 숫자를 모두 합한 값은 해당 무인도..
2025.02.19
-
[C#][프로그래머스] 타겟 넘버
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 📒 문제n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 re..
2025.02.18
-
[알고리즘] 너비 우선 탐색, BFS(Breadth-First Search) 코드 구현
너비 우선 탐색에 대한 개념은 아래 포스팅을 참조하면 된다. [알고리즘] 너비 우선 탐색 (BFS, Breadth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 너비 우선 탐색(BFS)에 대해 알아보려고한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그twd0622.tistory.com 너비 우선 탐색은 Queue(큐)를 이용해서 코드로 구현할 수 있다. C# 코드를 통해 BFS를 구현해 보겠다.큐(Queue)를 이용한 반복 구현너비 우선 탐색은 Queue를 이용해서 구현할 수 있으며, 한 정점을 방문하면 인접한 정점을 모두 Queue에 담고 Queue에 담긴 정점을 꺼내 Queue에 담긴 모든 노드를 방문할 때 ..
2025.02.17
-
[알고리즘] 깊이 우선 탐색, DFS(Deep-First Search) 코드 구현
깊이 우선 탐색에 대한 개념은 아래의 포스팅을 참조하면 된다. [알고리즘] 깊이 우선 탐색 (DFS, Depth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 깊이 우선 탐색(DFS)에 대해 알아보려고 한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래twd0622.tistory.com 깊이 우선 탐색을 코드로 구현하는 방법은 2가지로 반복 구현, 재귀 구현이 있다. C#코드를 통해 DFS를 구현해 보겠다.반복구현반복 구현은 Stack을 이용한 구현 방법으로, 한 정점을 방문하면 인접한 정점들을 모두 Stack에 담고 Stack에서 하나씩 꺼내 인접한 노드를 Stack에 담으면서 Stack에 담긴 모든 노드를 방문..
2025.02.17
-
[디자인패턴] 디자인 패턴 개요
디자인 패턴(Design Pattern)은 소프트웨어 설계 과정에서 발생하는 문제들에 대한 해결책이다. 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화할 수 있는 미리 만들어진 청사진과 비슷하다. 일종의 설계 기법이며, 설계 방법이다목적sw 재사용성, 호환성, 유지보수성을 보장 특징디자인 패턴은 하나의 아이디어로, 특정한 구현이 아니다. 패턴과 알고리즘과 자주 혼동하는데, 두 개념 모두 어떤 문제에 대한 해결책을 설명하기 때문이다. 알고리즘은 어떤 문제를 해결하기 위해 따라야 할 명확한 절차이고, 디자인 패턴은 해결책에 대한 상위 수준의 설명이다. 디자인 패턴은 결과와 기능을 제시하나 구현 단계 및 순서는 사용자가 결정한다. 프로젝트에 항상 적용해야 하는 것은 아니지만, 재사용, 호환, 유지 보..
2025.02.13
-
[C#] Array.Sort() 람다식
이번 포스팅 내용은 Array.Sort에 람다식을 이용하는 방법이다.단순 오름차순으로 변경하는게 아니라 다양한 조건을 사용해 정렬을 하는 법을 찾다가 알게된 문법이다.Array.Sort()를 사용하면 오름차순 배열을 정렬할 수 있다.int[] arr1 = { 20, 60, 40, 50, 30, 10 };Array.Sort(arr1);Console.WriteLine(string.Join(", ", arr1)); // 10, 20, 30, 40, 50, 60 하지만 개발을 하다보면 오름차순 뿐만아니라, 내림차순이나, 기준이 같으면 다른 항목을 비교하는 등 다양한 조건이 요구될 때가 있다.람다식람다식은 c#에서 익명 메서드를 만드는 방법으로 간단하게 설명하자면 '(매개변수 목록) => 식'의 형태로 표현된다...
2025.02.12
-
[C#][프로그래머스] 과제 진행하기
프로그래머스 > 코딩테스트 연습 > 연습문제 > 과제 진행하기 https://school.programmers.co.kr/learn/courses/30/lessons/176962#qna 📒 문제과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다. 과제는 시작하기로 한 시각이 되면 시작합니다.새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행합니다.멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과..
2025.02.12
-
[C#][프로그래머스] 예산
프로그래머스 > 코딩테스트 연습 > Summer/Winter Coding(~2018) > 예산https://school.programmers.co.kr/learn/courses/30/lessons/12982 📒 문제S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한..
2025.02.11
-
[알고리즘] 구현 (Implementation)
구현 알고리즘(Implementation Algorithm)이란, 어떤 특별한 공식이나 방법이 아닌 코딩테스트 문제 해결을 위한 개념으로, 단순히 머릿속에 있는 알고리즘을 소스코드로 풀어내는 과정을 말한다. (Problem-Thinking-Solution) 어떤 문제를 풀든 소스코드를 작성하는 과정은 필수이기 때문에 대부분의 알고리즘 문제가 '구현 문제'이다. 그 중 구현이 어렵거나 초점에 맞춰져있는 문제들이 있다. 즉, 풀이를 떠올리는 것이 쉽지만 소스코드로 옮기기 어려운 문제가 구현문제 라고 생각하면 된다. 예시실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제문자열을 특정한 기준에 따라서 끊어 처리해야하는 문제적절한 라이브러리를 찾아서 사용해야 하는 문제알고리즘은 간단한데, 코드가 길어지..
2025.02.11