C# 27

[프로그래머스] 점프와 순간이동 | C#

[ 점프와 순간이동 ] 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량..

[프로그래머스] 다리를 지나는 트럭 | C#

[ 다리를 지나는 트럭 ] 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어,트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 거너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7, 4, 5, 6] 1 ~ 2 [] [7] [4, 5, 6] 3 [7]..

[자료구조] 배열, 연결 리스트

[ 자료구조 ] 데이터 값의 모임 -> 메모리 공간을 효율적으로 사용해야 할 때 필요 [ 배열(Array) ] 같은 종류의 데이터를 순차적으로 저장하는 자료 구조 고정된 크기를 갖고 있음 인덱스(Index) 번호로 데이터에 접근할 수 있다. 요소(element): 배열을 구성하는 각각의 값 인덱스(Index): 데이터를 기록할 경우 그 데이터의 이름, 데이터의 크기 등의 속성과 그 기록 장소 등을 표로 표시하는 것. 0부터 시작, 배열의 크기 - 1까지 사용할 수 있다. -> 참조용 데이터 [ C# 배열 선언 및 초기화 ] int[] arr = new int[] { 0, 1, 2 }; int[] arr2 = { 0, 1, 2 }; int[] arr3; arr3 = new int[] { 0, 1, 2 };..

[알고리즘] 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)

[ 깊이 우선 탐색 | DFS(Depth-First Search) ] 루트 노드(또는 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식 -> 최대한 깊이 내련 후, 더이상 깊이 갈 곳이 없을 경우 옆으로 이동 [ 특징 ] 모든 노드를 방문해야 하는 경우 사용. 깊이 우선 탐색(DFS)가 너비 우선 탐색(BFS)보다 조금 더 간단 검색 속도 자체는 너비 우선 탐색(BFS)에 비해 느림 스택(stack) 또는 재귀함수로 구현 [ 코드 ] public class Node { public string Name { get; set; } public List Children { get; set; } public bool Visited { get; set; } public..

[프로그래머스] 달리기 경주 | C#

[ 달리기 경주 ] 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세..

[백준 코딩테스트] 2739번, 10950번 | C#, Python, C

[ 2739번 ] [ C# ] int num = int.Parse(Console.ReadLine()); for(int i = 1; i < 10; i++) Console.WriteLine(num + " * " + i + " = " + num * i); [ Python ] num = int(input()) for i in range(1, 10): print(str(num) + " * " + str(i) + " = " + str((num) * i)) 파이썬은 문자열과 숫자를 같이 출력하려면 숫자를 문자열로 변환해야 한다. [ C ] #include int main(){ int num; scanf("%d", &num); for(int i = 1; i < 10; i++) { printf("%d * %d = %d\..

[백준 코딩테스트] 2480번 | C, C#, Python

[ 2480번 ] [ C# ] string[] ss = Console.ReadLine().Split(); int a = int.Parse(ss[0]); int b = int.Parse(ss[1]); int c = int.Parse(ss[2]); int win; if(a == b || a == c){ if(b == c) win = 10000+a*1000; else win = 1000+a*100; } else if(b == c){ if(a == b) win = 10000 +b* 1000; else win = 1000+b*100; } else { if (a > b && a > c) win = a * 100; else if(b>a&& b> c) win = b *100; else win = c * 100; } C..

[백준 코딩테스트] 2884번, 2525번 | C, C#, Python

[ 2884번 ] [ C# ] string[] s = Console.ReadLine().Split(); int h = int.Parse(s[0]); int m = int.Parse(s[1]); m -= 45; if(m < 0){ m += 60; h -= 1; if(h < 0) h = 23; } Console.WriteLine($"{h} {m}"); [ Python ] h, m = map(int, input().split()) m -= 45 if(m < 0): m += 60 h -= 1 if(h < 0): h = 23 print("{} {}".format(h, m)) [ C ] #include int main(){ int h, m; scanf("%d %d", &h, &m); m -= 45; if(m < 0..

[백준 코딩테스트] 2753번, 14681번 | C, C#, Python

[ 2753번 | 윤년 ] https://www.acmicpc.net/problem/2753 [ C# ] int y = int.Parse(Console.ReadLine()); if(y % 400 == 0) Console.Write(1); else if(y % 100 == 0) Console.Write(0); else if(y % 4 == 0) Console.Write(1); else Console.Write(0); [ Python ] y = int(input()) if(y % 400 == 0): print(1) elif(y % 100 == 0): print(0) elif(y % 4 == 0): print(1) else: print(0) [ C ] #include int main(){ int y; scan..