전 취미, 단순한 작업용으로 예전에 배웠었기에 그닥 잘하진 못합니다만 주로 쓰는건 C/C++, C#, Go 정도네요.
Python은 약간 되긴 하는데, 솔직히 잘은 모르겠...
그러고보니 osu! 하시는 분들중에는 프로그래밍 전공으로 배우시는분들이 많더군요
Python은 약간 되긴 하는데, 솔직히 잘은 모르겠...
그러고보니 osu! 하시는 분들중에는 프로그래밍 전공으로 배우시는분들이 많더군요
그저 컴퓨터에 환경을 저거 3개만 해둬서 하고있는거긴 합니다만...A BCDe wrote:
>> Go를 쓰시는 분은 처음봐요!
많이 설정할 필요없는 비주얼 스튜디오 쓰세요..!Sylphi wrote:
그저 컴퓨터에 환경을 저거 3개만 해둬서 하고있는거긴 합니다만...
지금은 그마저도 포맷하고나서 설정하기 귀찮단 이유로 멍때리고 있음
UnLock- wrote:
형님들 제가 과제가 막혀서 그런데 좀 도와주세용 ㅠㅠ문제산타의 양말 찾기
50개의 선물 상자 중에 한 개의 상자에는 산타의 양말이 들어 있다. 다음의 조건에 맞는 양말이 들어있는 상자를 찾는 프로그램을 작성하시오.
1. 상자는 배열을 이용하여 구현, 선물 상자의 무게는 10 양말 상자의 무
게는 1로 가정
2. 상자를 여는 횟수는 1번으로 제한 (배열을 탐색하여 1인 것을 찾는 방
법은 불가)
3. 상자들의 무게를 비교하여 범위를 제한하는 함수는 재귀 함수로 작성(
비교하는 횟수는 6번 이하)
일단 조교님 힌트로는 이진 탐색이랑 비슷한 방법으로 하면 된다는데
도오오오오오오저히 답이 안나옵니다 ㅠㅠ
일단 지금까지 짠 코드는 이따 집가서 보여드릴게용 ㅠㅠ
#include <iostream>
#include <algorithm>
int nyaa(int *arr, unsigned int size, int val) {
if (size == 0)
return -1;
if (size == 1 && arr[0] == val) {
return 0;
}
else if (size == 1 && arr[0] != val) {
return -1;
}
unsigned int del = size / 2;
int left = std::accumulate(arr, arr + del, 0, std::plus<int>());
int right = std::accumulate(arr + del, arr + size, 0, std::plus<int>());
if (left > right) {
int ret = nyaa(arr, del, val);
return (ret != -1) ? (size_t)arr + (size_t)ret - (size_t)arr : ret;
}
else if (left < right) {
int ret = nyaa(arr + del, size - del, val);
return (ret != -1) ? (size_t)arr + (size_t)del + (size_t)ret - (size_t)arr : ret;
}
else {
return -1;
}
}
int main()
{
int arr[50];
std::fill_n(arr, 50, 1);
srand(time(0));
arr[rand()%50] = 10;
int search = nyaa(arr, 50, 10);
if (search == -1) {
std::cout << "Not found" << std::endl;
}
else {
std::cout << "Found: arr[" << search << "] == " << arr[search] << std::endl;
}
}
답이 좀 늦은것인지도 모르겠는데요UnLock- wrote:
형님들 제가 과제가 막혀서 그런데 좀 도와주세용 ㅠㅠ문제산타의 양말 찾기
50개의 선물 상자 중에 한 개의 상자에는 산타의 양말이 들어 있다. 다음의 조건에 맞는 양말이 들어있는 상자를 찾는 프로그램을 작성하시오.
1. 상자는 배열을 이용하여 구현, 선물 상자의 무게는 10 양말 상자의 무
게는 1로 가정
2. 상자를 여는 횟수는 1번으로 제한 (배열을 탐색하여 1인 것을 찾는 방
법은 불가)
3. 상자들의 무게를 비교하여 범위를 제한하는 함수는 재귀 함수로 작성(
비교하는 횟수는 6번 이하)
일단 조교님 힌트로는 이진 탐색이랑 비슷한 방법으로 하면 된다는데
도오오오오오오저히 답이 안나옵니다 ㅠㅠ
일단 지금까지 짠 코드는 이따 집가서 보여드릴게용 ㅠㅠ
#include <stdio.h>
#include <random> // 랜덤을 위한 헤더
#include <time.h> // 랜덤을 위한 헤더
#pragma warning(disable : 4996) // visual studio 2013 또는 그 이상을 사용하지 않는다면 필요없음
#define NUM 50
int box[NUM];
void SetSock() // 상자 안에 양말 넣기
{
srand((unsigned)time(NULL));
int a = rand() % NUM;
printf("%d\n", a); // 확인용 출력
for (int i = 0; i < NUM; i++)
{
if (i == a)
{
box[i] = 11; // 양말이 있는 상자
}
else
{
box[i] = 10; // 양말이 없는 상자
}
}
}
int BoxSum(int a, int b) // 상자들의 무게의 합
{
int w = 0;
for (int i = a; i < b; i++)
{
w += box[i];
}
return w;
}
void FindSock(int a, int b)
{
int n = b - a; // 개수
int delta = n / 3 + 1; // 한 묶음의 상자 개수
int boxSum1 = BoxSum(a, a + delta);
int boxSum2 = BoxSum(a + delta, a + 2 * delta);
if (n == 1)
{
printf("ans : %d\n", a); // 답 출력
return;
}
if (boxSum1 == boxSum2) // 첫번째 상자들과 두번째 상자들의 무게가 같다면
{
FindSock(a + 2 * delta, b);
return;
}
else if (boxSum1 > boxSum2) // 첫번째 상자들이 무겁다면
{
FindSock(a, a + delta);
return;
}
else // 두번째 상자들이 무겁다면
{
FindSock(a + delta, a + 2 * delta);
return;
}
}
int main()
{
SetSock();
FindSock(0, NUM);
}
17(171), 17(170), 16(160)
6(60), 6(61), 5(51)
3(20), 3(21), 0(30)
1(10), 1(11), 1(10)
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void quick(int left, int right, int* arr)
{
int pivot = left;
int i = left + 1;
int j = right;
if(left < right)
{
while(i <= right)
{
if(arr[i] < arr[pivot])
swap(arr[i], arr[++j]);
i++;
}
swap(arr[left], arr[j]);
pivot = j;
quick(left, pivot - 1, arr);
quick(pivot + 1, right, arr);
}
}
Doyak wrote:
그러니 백준 열심히 합시다
#include <stdio.h>이건 if절쪽 if(word[cnt][0]=='0') break; 이놈이 잘못된거 같은데 어떻게 맞게 고쳐야 할지 모르겠음
#include <string.h>
int main() {
char word[50][101];
int i,cnt=0;
while(1){
gets(word[cnt]);
cnt++;
if(word[cnt][0]=='0') break;
}
printf("%d\n",cnt);
for(i=0;i<cnt;i++){
if(i%2==0){
puts(word[i]);
}
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char st[101];
int i,len;
while(1){
gets(st);
if(st[0]=='E'&&st[1]=='N'&&st[2]=='D') break;
len=strlen(st);
for(i=len;i>=0;i--){
printf("%c",st[i]);
}
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char st[101];
int i,len;
while(1){
scanf("%s",st);
if(st[0]=='E'&&st[1]=='N'&&st[2]=='D'&&st[3]=='\0') break;
len=strlen(st);
for(i=len-1;i>=0;i--){
printf("%c",st[i]);
}
printf("\n");
}
return 0;
}
https://online.acmicpc.org/help/cppDoyak wrote:
엇 그걸 해도 cin은 scanf보다 느리다고 들었는데 잘못된 정보려나요?
visual studio 2013 이상을 사용하신다면 scanf_s를 사용해야겠지만(scanf를 사용하면 에러가 발생합니다), 다른 프로그램에서는 적용되지 않은 것으로 알고 있습니다.Taeyang wrote:
책이 한 7~8년 된 책이라 그런지... scanf_s은 저기서 먹히지도 않음 ㅠㅠ
처음 배울 때는 정말 불편한 것처럼 보이지만 잘 익힌다면 꽤나 유용한 도구로 쓰입니다.Taeyang wrote:
지금 포인터 중간쯤 풀고있는데 이거 어따가 활용하나요 (책에는 안나와있음)
A BCDe wrote:
그래도 진짜 속도를 따진다면 getchar가 최고죠 ㅎㅎ
불편해서 안 쓴다 뿐이지..
2/nDoyak wrote:
BOJ 같이 하실 분 구해요
그룹도 만들면 재미있을 텐데 사람이 있으면...
전 https://www.acmicpc.net/user/djm03178 입니다.
Left wrote:
#offtopic 이 살며시 떠올라버리는건